我在 localhost:3333 上使用带有 cookie 解析器中间件的 Express 框架的 NodeJS。我的前端由 localhost:3000 上的 react dev 服务器提供服务。这是我第一次尝试使用 cookie。以下是我为 cookie 设置的选项:{ expires: maxAge , httpOnly: true, sameSite: 'none', secure: true, domain: null }。我也尝试过使用和不使用 sameSite、httpOnly 和安全选项。以及域=本地主机。
这是我在尝试设置 cookie 时得到的 http 响应的标头:
Set-Cookie:
sessionid=119faa6a3fcfab0628998ff2592e04ceb06cda12; Path=/; Expires=Sun, 29 Jan 2023 15:20:16 GMT; HttpOnly; Secure; SameSite=None
Run Code Online (Sandbox Code Playgroud)
但问题是 cookie 没有出现在 Chrome 的 Application/Cookies 或 Firefox 的 Storage/Cookies 中。我也无法访问 cookie 作为不同端点上的请求 cookie。然而,它确实适用于我的 vps。vps 使用正确的域名和代理,因此所有请求似乎都来自同一个域/端口,我不知道这是否有所不同。
我还尝试将 127.0.0.1 dev.mylocalhost.com 添加到 /etc/hosts 以在 localhost 上伪造域名。只是阅读一些关于此的内容,不太确定它应该如何工作。我不拥有这个域,这只是在我本地的 /etc/hosts 文件中。我还没有尝试在本地主机上使用代理,所以 cookie 是从服务器上的端口 3333 上设置的,而客户端在端口 3000 …