如何在主机名而不是域上设置 cookie?

How to set cookie on hostname instead on domain?

提问人:justAnAnotherCoder 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19

问:

之前,我谈到了这个问题。我想谈谈我是如何面对这个问题的。我们的应用程序在组织域级别设置 cookie,即 ,并且我们的应用程序正在与其他团队应用程序集成。他们的系统正在崩溃,因为我们的 cookie 使用了一个大字符的 cookie。由于该团队也在同一域上存储 cookie,现在我想在主机名级别设置 cookie,即 .domain.comuiserver.domain.com

我尝试使用主机名,但 cookie 没有从 API 发送到 UI。

res.cookie('string', Buffer.from(token).toString('base64'), { secure: true, httpOnly: false, expires: new Date(expiryDate), sameSite: 'None', domain: "uiserver.domain.com" })

UI 服务器主机名 -uiserver.domain.com

API 服务器主机名 -apiserver.domain.com

UI -> API(设置 cookie) -> UI(接收 cookie):是流程

有谁知道如何在hostname()上存储cookie?uiserver.domain.com

JavaScript 节点 .js google-chrome cookie 跨域

评论

0赞 CBroe 11/16/2023
您不能只为您喜欢的任何域设置 cookie。 只能通过其 HTTP 响应设置 cookie,该响应对 或其子域有效。您只能以其他方式接收该值,然后使用 JavaScript 在客户端为自己设置 cookie。(在这种情况下,您将无法将其设置为 HttpOnly。apiserver.domain.comapiserver.domain.comuiserver.domain.com
0赞 justAnAnotherCoder 11/16/2023
这意味着无法在任意域上设置 cookie 值?
0赞 CBroe 11/16/2023
不,当然不是。或者您希望您的访问能够设置使用...的cookie?mypage.comloggedIn=trueyouronlinebanking.com
0赞 justAnAnotherCoder 11/16/2023
在您的情况下,它不在同一域中。就我而言,API 和 UI 服务器都在同一个域中。
0赞 CBroe 11/16/2023
没关系。您可以设置对子域有效的 Cookie,但不能从一个子域“交叉”到另一个子域。为 的 Cookie 设置,以响应对 的请求 - 对 、 、 有效。但是,您为响应最初发出的请求而设置的 cookie 只能对 、 有效,但对foo.comfoo.comfoo.combar.foo.com*.foo.combar.foo.combar.foo.comgoo.bar.foo.com*.bar.foo.comxyz.foo.com

答: 暂无答案