我们的应用程序使用 cookie 来记住用户登录。我们进行的每次 auth API 调用,浏览器都会将服务器设置的 HTTPonly cookie 附加到 API 请求中并进行身份验证。 Mojave 发布后,这种行为似乎在 safari 中被打破了。
我阅读了有关 safari 实现的跨站点 cookie 安全性的信息,我们的服务器团队在设置 cookie 时添加了 SameSite=None;Secure
。即使在那之后,它仍然不起作用。
设置 Cookie:my_cookie=XXXXX;路径=/;安全的;仅限HTTP; SameSite=无
请建议或提供实际找到解决方案的人的链接..
最佳答案
MacOS 10.14 上的 Safari 版本和 iOS 12 上的所有浏览器都受到 this bug 的影响。这意味着 SameSite=None
被错误地视为 SameSite=Strict
,例如最严格的设置。
我在 SameSite cookie recipes 中发布了一些指南在任何一个:
- 使用两组 cookie 来说明支持
SameSite=None 的浏览器;安全
和那些不安全的。 - 嗅探用户代理for incompatible browsers并且不为这些请求提供
SameSite=None
。
关于javascript - 即使设置 SameSite=None,Safari 也不发送 cookie;安全的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58525719/