收藏
回答

IOS14、微信7.0.18 H5页面cookie跨域问题?

在IOS14跟7.0.18版本的微信上面请求无法携带跨域cookie,这个要怎么解决?设置cookie属性samesite=none吗?

回答关注问题邀请回答
收藏

6 个回答

  • 社区技术运营专员-CJiang
    社区技术运营专员-CJiang
    置顶回答2020-11-10

    iOS 14 后,基于对用户隐私的保护,苹果对于 Safari 及第三方 App 内 WKWebview 内的 ITP 策略进一步收紧,网页内发起的跨域 xhr 请求,会出现第三方 Cookie 无法设置的情况。

    详细可见

    https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/

    https://developer.apple.com/videos/play/wwdc2020/10188/?time=1533 


    当前 iOS 系统没有面向开发者或用户开放对于该策略的禁用或配置能力,微信内打开的网页会一并受该策略影响,并且无法提供可替代的解决方案。


    建议微信网页开发者通过调整 ajax 请求 URL 为相同 site, 如 https://www.example.com 发起请求至 https://login.example.com ; 或者通过引入后台 API 来解决跨域请求数据共享的需求;

    2020-11-10
    有用 2
    回复 11
    • 陈辉勇
      陈辉勇
      2020-11-11
      IOS系统14版本以上,且微信版本7.0.18,iPhone7以上机型都会出现这个问题。公司使用的是CAS登录,微信浏览器访问http://vip.foxitsoftware.cn/pay/mmember.html 发现未登录,会跳转登录页,登录后能获取到登录cookie跳转回原页面,因为跨域无法携带cookie又会跳转登录页,在登录页发现已经存在登录cookie又会跳转回原页面,一直循环。在低版本未发现该问题
      2020-11-11
      1
      回复
    • 路通
      路通
      2020-11-11
      你好,我们也出现相同问题,有解决方案吗
      2020-11-11
      1
      回复
    • 社区技术运营专员-CJiang
      社区技术运营专员-CJiang
      2020-11-11回复陈辉勇
      你好,是直接在微信直接打开H5就会出现问题吗?
      2020-11-11
      回复
    • 陈辉勇
      陈辉勇
      2020-11-11回复社区技术运营专员-CJiang
      是的,直接在微信打开H5就会出现这种问题
      2020-11-11
      1
      回复
    • Fukai_AC
      Fukai_AC
      2020-11-11
      +1 求解决方案
      2020-11-11
      回复
    查看更多(6)
  • 陈辉勇
    陈辉勇
    2020-11-26

    对于IOS14的cookie跨域问题解决办法有2种:

    1、使用token进行跨域信息传递。

    2、更换H5页面域名,顶级域名一致则不存在跨域问题。

    因第一种改动量较大,所以采用第二种方式,目前用户已经可以正常使用。

    2020-11-26
    有用 1
    回复
  • hopper
    hopper
    2020-11-18

    遇到相同的问题,查资料发现。在iOS 14和macOS Big Sur中,所有WKWebView应用程序默认都启用了ITP,详情:https://developer.apple.com/videos/play/wwdc2020/10188/?time=1533

    iOS微信客户端没像 safari 浏览器提供关闭「阻止跨站跟踪」的开关,所以这种场景 cookie 跨域在 iOS14 微信基本没找到解决的办法

    最终解决,使用了微信官方提供的适配变更方案,过程改动的逻辑很大,但可以从根本上避免了跨域的情况,感觉能很好地解决了登录问题

    2020-11-18
    有用 1
    回复 1
    • Veitor
      Veitor
      05-19
      这意思就是将原本通过<script><img><iframe>等引入第三方页面设置在第三方域名下cookie的方式改为通过URL传递加密数据到第三方页面?
      05-19
      回复
  • hello world
    hello world
    2020-11-14

    顶级域名改为一致后解决

    2020-11-14
    有用 1
    回复
  • 小俊
    小俊
    2020-11-09

    cookie属性samesite=none设置都不行,同求解决方案

    2020-11-09
    有用 2
    回复
  • hkk
    hkk
    07-01

    顶级域名改为一致,还要使用Secure and HttpOnly cookie才能

    07-01
    有用
    回复
登录 后发表内容
问题标签