gpt4 book ai didi

javascript - Cookie 被设置到不同的域(Node.js、Angular)

转载 作者:行者123 更新时间:2023-12-02 22:23:35 26 4
gpt4 key购买 nike

我正在使用 Angular 和 Node.js (Express) 开发 Web 应用程序,但我遇到了 Cookie 问题 - 它们被设置到我的后端域而不是我的前端。

当我向 /auth 端点发出 POST 请求时,服务器将返回 HttpOnly cookies - 一个是 JWT,第二个是刷新 token 。当我检查 Chrome 中的“网络”选项卡时,我可以看到服务器发回了这些 Cookie,但是当我检查“应用程序”>“存储”>“Cookie”时,这里什么也没有。

我发现 cookie 是在我的后端域上设置的。 (app-backend.com 而不是 app.com) 它们只是与我的后端域相关联。

奇怪的是,我的应用程序在我的计算机上运行得很好,但是当我切换到手机时,cookie 不会从那里发送(我使用带有 Safari 或 Chrome 的 iPhone)。另外,当我在本地主机开发服务器上运行我的应用程序时,一切正常。

我尝试将 cookie 配置中的域设置为我的前端域,但它根本不起作用。

另外,Chrome 会通过此消息警告我,我不知道它是否与我的问题有关

A cookie associated with a cross-site resource at "my-domain" was set without the SameSite attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with SameSite=None and Secure. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

这是我在 github 上的代码:

前端:https://github.com/TenPetr/dashboard

后端:https://github.com/TenPetr/dashboard_backend

感谢您的建议。

最佳答案

您正在设置SameSite=None;保护 production.json 中的 属性哪个是对的。但是,根据您的 iOS/Safari 版本,您可能会点击 an incompatibility issue其中 cookie 被错误地视为 SameSite=Strict

在您的开发设置中,您都: 不设置 SameSite=None;安全,并且可能使用无论如何都算作同一站点的 URL,例如在 localhost 上提供服务可能会导致一些奇怪的 cookie 行为。

我会尝试在不使用 SameSite=None 属性的情况下测试您的生产配置。如果这随后开始在 Safari 上运行,那么您就遇到了该错误。您可以通过设置两个版本的 cookie 或添加用户代理嗅探来缓解此问题。更多详情https://web.dev/samesite-cookie-recipes

或者,您可能会点击 Safari cookie policy issues如果您尝试从后端服务器设置 cookie,而该服务器不是用户实际访问的站点。

关于javascript - Cookie 被设置到不同的域(Node.js、Angular),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com