微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么没有在浏览器中设置这个 localhost cookie?

如何解决为什么没有在浏览器中设置这个 localhost cookie?

在我正在构建的服务器中,我想设置一个带有身份验证令牌的 cookie,该令牌在用户登录时设置。登录请求是一个包含我的用户名和密码的表单的 POST XHR。我正在 http://localhost:3000 上对此进行测试。

我可以看到服务器正在尝试设置 cookie,因为响应具有以下标头:

set-cookie: token=json-web-token-value;Expires=Fri,12 Mar 2021 18:19:12 GMT

然而,Chrome 似乎忽略了这一点。对 API 的后续请求均不包含 cookie,它也不在 http://localhost:3000 devtools 部分的 Application -> Cookies cookie 列表中。

当我尝试使用 JS 手动设置 cookie 时

document.cookie = 'token=json-web-token-value;Expires=Fri,12 Mar 2021 18:19:12 GMT'

然后 cookie 确实设置正确。所以问题显然不在于 cookie 本身的内容

在这里做错了什么?


编辑:火狐

我决定检查 Firefox 的工作方式是否有任何不同,您瞧,cookie 确实被设置了。唯一看起来奇怪的是路径设置为 /auth - 可能是因为登录端点路径是 /auth/login。手动将我的服务器中的路径设置为 / 会导致 cookie 为

token=json-web-token-value;Path=/;Expires=Fri,12 Mar 2021 18:34:27 GMT

现在似乎在 Chrome 中也能工作!

所以现在我的问题是:

  1. 为什么不定义路径会使 Chrome 完全忽略 cookie?
  2. 为什么不指定路径会使 Firefox 将路径设置为 /auth 而不是 //auth/login

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。