Safari不包含请求中的cookie,但Safari隐身吗?

问题描述 投票:1回答:1

因此,通过我的应用程序,我允许我们的用户设置自己的自定义domiain,它指向我们在netlify上托管的应用程序。这很好用,但是现在前端显然正在与驻留在不同域上的api进行通信。

在我从api发送回来的auth cookie上,我有SameSite=None,它可以在所有其他浏览器上运行,但Safari浏览器中的请求不包含cookie。但是,如果我以隐身方式使用Safari,它是否在请求中包含cookie?我的问题是:

  1. 为什么在隐身的野生动物园中不能正常工作?
  2. 是否可以通过正常的野生动物园进行这项工作?

这里是一个更详尽的示例:

front end: 
customersdomain.com

api:
api.myapp.com

Cookie

x-refresh: <cookie_val>
SameSite: none
HttpOnly: true
Secure: true
expires: 1 month
domain: api.myapp.com

我的cors还设置了允许凭据,并且在请求中我将credentials设置为include

cookies safari
1个回答
0
投票

在Safari 13.1中,为了使第三方请求可以访问凭据/ cookie,必须使用Storage Access API通过iframe请求访问。

这可能会严重影响您应用的运行。请阅读WebKit的recent blog post,以获取有关其智能跟踪防护的最新更改的更多信息。

[在Safari 13.1之前,有一些临时的兼容性修补程序,详细说明为here,以允许第三方请求访问cookie。我的猜测是,第三方域在您的设备上被Safari标记为具有跟踪用户潜力的域,并且默认情况下被阻止访问Cookie。只要您不清除Safari上的缓存,该域就会一直处于阻止状态。通过使用隐身窗口,该会话的域不再被阻止。

SameSite =没有兼容性被添加到Safari 13中,因此这不应该引起您的任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.