如何解决为什么没有在浏览器中设置这个 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 中也能工作!
所以现在我的问题是:
- 为什么不定义路径会使 Chrome 完全忽略 cookie?
- 为什么不指定路径会使 Firefox 将路径设置为
/auth
而不是/
或/auth/login
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。