我有一个网站 a.com,其中第三方应用指向 apps.b.com。当我登录到 a.com 时,我也在后台使用相同的凭据对 apps.b.com 进行了身份验证。这样用户就不必登录来访问apps.b.com。我了解浏览器在向它发出请求时会将所有 cookie 发送到 apps.b.com。这就是它现在的工作方式。阅读有关 SameSite 属性的文章https://web.dev/samesite-cookies-explained/,看来 apps.b.com 是第三方网站。现在我必须在 a.com 上配置 Web 服务器以将 cookie 设置为 SameSite=none;Secure 还是必须在 apps.b.com 的 Web 服务器上设置 SameSite=none;Secure?
问问题
236 次
1 回答
1
每当您发出需要 cookie 的跨站点请求时,都需要标记这些 cookie SameSite=None; Secure
。
因此,例如,如果用户打开a.com
并且您有一个<iframe>
或fetch()
期望apps.b.com
cookie,那么apps.b.com
cookie 需要SameSite=None; Secure
.
反之亦然,如果用户打开apps.b.com
并且您正在请求a.com
通过依赖a.com
cookie 检查他们的身份验证状态,那么这些 cookie 需要SameSite=None; Secure
.
本质上,您正在寻找的模式是当浏览器位置栏中的站点与需要 cookie 的站点不同时,这些站点就是需要标记的 cookie。因此,根据您的设置,它可能是一个或两个。
于 2020-01-13T12:23:19.767 回答