You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

苹果设备Safari拦截Cookie致Token刷新失败问题排查

Safari跨域Cookie拦截及Token刷新失败的原因分析

结合你描述的前后端分离场景、跨域名情况以及Safari的特性,导致Cookie被拦截、Token刷新失败的核心原因主要有以下几点:

  • Safari第三方Cookie限制(ITP策略):Safari的智能跟踪预防(Intelligent Tracking Prevention,ITP)默认会严格限制第三方域名的Cookie存储和读取。如果你的API域名(api.xxx.xxx.xxx)和主域名(xxx-xxx.xxx)不属于同一个根域名(比如一个是xxx.xxx,另一个是xxx-xxx.xxx),API域名会被判定为第三方域名,其Set-Cookie响应头会被Safari拦截,导致Cookie无法持久化存储,后续请求自然无法携带Cookie。

  • Cookie的SameSite属性配置错误:如果后端在设置Cookie时,SameSite属性未设置为None,或者未同时搭配Secure属性,跨域场景下Safari不会在请求中携带该Cookie。需要注意:

    • 当SameSite设为None时,必须同时开启Secure(仅HTTPS环境生效),否则Safari会直接拒绝这个Cookie;
    • 如果设为Strict或Lax,跨域请求时Safari不会自动携带Cookie,只有同域请求才会携带。
  • 域名根域不匹配:如果API域名和主域名的根域完全不同(比如主域是abc.com,API域是def.net),即使配置了SameSite=None,Safari的ITP仍可能将其视为第三方跟踪行为,限制Cookie的使用。这种情况下,需要确保两者共享同一根域,或者采用其他鉴权方式(比如将Token放在请求头的Authorization字段,而非依赖Cookie)。

  • HTTP环境下的Secure属性限制:如果你的服务是在HTTP环境下运行(比如本地开发),而Cookie设置了Secure属性,Safari会拒绝存储该Cookie,因为Secure要求Cookie只能通过HTTPS协议传输。

内容的提问来源于stack exchange,提问作者i chestor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:30:55