Http 设置cookie标头而不是在边缘中设置cookie

Http 设置cookie标头而不是在边缘中设置cookie,http,cookies,microsoft-edge,setcookie,Http,Cookies,Microsoft Edge,Setcookie,我正在本地测试一个应用程序,并向其发出授权请求。在响应中返回带有JWT auth令牌的set cookie头。JWT看起来像: JWT-TOKEN=[really long alphanumeric string];Version=1;Comment=;Domain=;Path=/;Max-Age=3600;;HttpOnly 之后,我向发出另一个请求,并收到一个未经授权的错误,因为它希望请求中包含一个带有JWT令牌的cookie Cookie是在Firefox、Safari和Chrome中设

我正在本地测试一个应用程序,并向其发出授权请求。在响应中返回带有JWT auth令牌的set cookie头。JWT看起来像:

JWT-TOKEN=[really long alphanumeric string];Version=1;Comment=;Domain=;Path=/;Max-Age=3600;;HttpOnly
之后,我向发出另一个请求,并收到一个未经授权的错误,因为它希望请求中包含一个带有JWT令牌的cookie


Cookie是在Firefox、Safari和Chrome中设置的,而不是Edge。Edge开发工具控制台中没有任何错误。你知道为什么饼干没有放在边缘吗?

我找到了一个在我的情况下有效的答案

我们在客户端上使用fetch。在一些较旧的浏览器中,本机fetch实现默认为
凭据:“省略”
,而较新的浏览器默认为
凭据:“同源”

因此,添加此选项似乎允许Edge在获取请求中接收cookie,例如

fetch('/users', {
  credentials: 'same-origin'
})

供参考。不管标题的名称如何,“省略”都将禁用发送和接收cookie。

您解决过这个问题吗?我目前正在研究完全相同的问题,但在非本地域上也失败了。我找到了一个潜在的解决方案,但我的后端团队从未尝试过(比与Edge的兼容性更紧迫的问题)。基本上,使用“域”字段会导致设置cookie失败。删除它可能会解决这个问题,但由于它从未实现,我没有费心更新这篇文章。我发现另一篇文章提到了这一点:我必须使用域字段,这样我们就有了子域通配符,它与我的解决方案完美地结合在一起。我还发现我的节点服务器在cookie上设置了Max Age属性,并删除了该属性以支持使用Expires。您的域参数是什么样子的?
.example.com
,尽管它在没有尾随点的情况下同样工作正常,而且RFC说尾随点应该没有什么区别。