Gil*_*ain 13 cookies google-chrome session-cookies samesite
我是一名前端开发人员,正在开发一个应用程序,其中login/响应在客户端上放置了一个 Session-Cookie。由于用户“登录”,稍后的请求将被授权。
所有没有 SameSite 属性的 cookie 都将被视为已SameSite=Lax指定。换句话说,它们将仅限于第一方(同一域中的服务器和客户端)。如果您需要第三方 cookie(不同域上的服务器和客户端),则它们必须标有SameSite=None.
默认限制为第一方
Set-Cookie: cname=cvalue; SameSite=Lax
Run Code Online (Sandbox Code Playgroud)
在第三方上下文中允许
Set-Cookie: cname=cvalue; SameSite=None; Secure
Run Code Online (Sandbox Code Playgroud)
对于我的应用程序,我想要默认行为。我的客户端和服务器在生产中运行在同一个域上。但在开发中,我正在localhost(不同的领域)工作。
到目前为止,chrome 在chrome://flags- SameSite 默认下有一个特殊的标志cookies。我可以在我的开发机器上启用这个标志并且登录通过了。在生产中,我不需要这个标志,因为我想要默认行为。
删除了默认情况下的SameSite cookie标志。这意味着从这个版本开始,我无法登录我的应用程序,除非将其部署到生产环境中。
有谁知道如何在从本地主机工作时获取 Session-Cookie。但仍然保持SameSite=Lax. 如果可能,只对客户端进行更改,但如果需要,也可以对服务器进行更改。
这不是解决方案!对于像我这样的人来说,这只是一个临时解决方法,他的工作是如何因此更新而停止的。
C:\Program Files (x86)\Google\UpdateGoogleUpdate.exe为GoogleUpdate2.exe. chrome://flags#same-site-by-default-cookies并禁用标志小智 1
在我们的例子中,我们还可以在不同的端口上本地运行我们的服务器,并将我们的客户端应用程序指向该本地主机地址以进行开发。
例如,我在 上运行客户端应用程序localhost:1234,并将请求发送到在localhost:5678. 这可确保 cookie 成功设置,因为客户端和服务器现在是“SameSite”。
诚然,这可能更像是一种解决方法,而不是解决方案,但我希望它在短期内有所帮助。