从不同域上的 API 发出 cookie 时,是否有 Safari iOS "Prevent Cross Site Tracking" 选项的解决方法?



是否有任何解决方法允许我启用"防止跨站点跟踪"选项(默认情况下,因此每个用户都会打开它(,并从与我的角度应用程序位于不同域的后端 API 发出 CORS cookie?

我的申请流程如下:1. 用户登录2. 服务器进行身份验证,发出 JWT 并将 JWT 存储在 HttpOnly cookie 中3.所有角度请求都有{withCredentials: true}

这在...视窗桌面浏览器。但是,当我尝试登录 Safari iOS 和 mac Safari 时,cookie 不会保存,也不会随后续请求一起发送。

我发现禁用"防止跨站点跟踪"选项有效,但我不能指望所有用户都禁用此选项以使用我的应用程序。

现在有什么解决方法吗?

我建议将您的网站和API放在同一个域上,例如 https://web.mydomain.com 和 https://api.mydomain.com。这应该不太难实现 - 我还没有在网上找到任何简单的技术解决方案,这将迫使 iOS 上的 Safari 在不更改设置的情况下允许这样做。

我遇到了同样的问题,重新加载页面(CTRL + R(确实更新了Safari检查部分的状态,然后我可以在"存储"->"Cookie"部分下看到cookie。所有功劳都归功于达希尔(我只是没有足够的声誉在这里添加评论:D(

最新更新