【问题标题】:Separate cookies between multiple web clients with different subdomain在具有不同子域的多个 Web 客户端之间分离 cookie
【发布时间】:2021-06-22 11:55:21
【问题描述】:

在使用 cookie 进行身份验证时,我的项目遇到了问题。我的项目有一个 API (NodeJS),我有 3 个客户端 (ReactJS)。

假设我的 API 在 api.example.com 上运行并为我的所有客户提供服务。我的第一个客户端在 example.com 上运行,第二个客户端在 second.example.com 上运行,第三个客户端在 third.example.com 上运行。

有没有办法防止 cookie 在子域之间共享?这会在系统之间产生角色权限问题​​。 谢谢您的帮助。如果您需要更多说明,请在下方评论!

【问题讨论】:

    标签: node.js reactjs cookies


    【解决方案1】:

    看看这个: https://stackoverflow.com/a/28320172/11128919 & https://stackoverflow.com/a/23086139/11128919.

    简而言之: 例如,如果您从 subdomain.mydomain.com 发送了以下标头,那么 cookie 将不会发送给 mydomain.com 的请求: 设置 Cookie:名称=值

    但是,如果您使用以下内容,它将在两个域中都可用: 设置 Cookie:名称=值;域=mydomain.com

    【讨论】:

    • 感谢您的回复,但我不确定您是否完全理解我的要求。你能再读一遍我的问题吗?我现在对其进行了一些更改,并使其更加清晰。谢谢
    • 嗨@ParaskevasLouka,我明白了,你有一个Nodejs后端API和三个前端托管在同一域的不同子域中。即 a.example.com 、 b.example.com 和 c.example.com。您的问题是:在同一浏览器中打开三个前端会导致 cookie 在彼此之间共享并导致身份验证问题我的说法对吗?
    • 如果我的理解是正确的,请尝试使用这个股权溢出解决方案,该解决方案说明如何避免子域共享 cookie。链接:security.stackexchange.com/a/212810 简而言之:Set-Cookie: lang=en-US;路径=/; Domain=.foo.example.com cookie 必须有一个带有“.”的域键。在域路径之前限制其他子域访问它
    猜你喜欢
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2020-06-30
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多