cookies - 为什么这个 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,并且它也不在 devtools 部分的 cookie 列表http://localhost:3000
中Application -> Cookies
。
当我尝试使用 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
and not/
,或者/auth/login
就此而言?
解决方案
推荐阅读
- ios - UITableView with Sections 在所有部分中重复单元格数据
- data-warehouse - dbt 表覆盖率指标
- azure-maps - 使用 Azure 地图提供程序按公司名称搜索
- azure - Azure Powershell 位置参数错误
- sql - 如何从不变字符串中获取子字符串
- excel - 使用数组使用 Excel-VBA 绘制 XY 散点图并更改水平(类别)轴标签
- php - PHP 7.4 PCRE2 换行符警告
- terraform - aws_alb_listener 的 Terraform 如何在 type="forward" 的默认操作中添加多个 target_group_arn
- python - 最终分类FC层的输出可以是负数吗?
- wordpress - 简码中的 WP_Error 以显示条款