Safari/Chrome 和 Set-Cookie Header 的开发人员控制台中未显示 Cookie,但在查看服务器日志时存在

Cookies don't show up in developer console of Safari/Chrome with Set-Cookie Header, but exist when looking at server logs

我正在使用 python 后端的 'Set-Cookie' header 响应为我的网络应用程序存储 cookie。

这是我对 client-end 函数的 ajax 调用:

在 Chrome 和 Safari 的开发人员工具中,当我查找 cookie 时,cookie 没有显示。

在 Chrome 上,Set-Cookie 甚至没有出现在对网络调用的响应 header 中。 在 Safari 中,Set-Cookie 响应 header 出现并显示在 request/response cookie 下, 但是当我检查应用程序的 cookie 时,什么也没有显示。

此外,Safari 中显示的 cookie 数据不正确:它显示的到期日期不正确,httpOnly/secure 这两个应该都是正确的。

cookie好像不存在,但是登录服务器的时候,我清楚的看到cookie是存在的,而且出现了 (safari 也显示它们在 request/response header 中来回移动)这意味着 cookie 被正确存储并在 header 中的每次调用后发送回服务器。我之前尝试将 httpOnly 设置为 false 并将 secure 设置为 false,但即便如此,cookie 仍表现出相同的行为。

这些 cookie 仍处于两种开发人员工具的监视之下。如何在开发人员工具中正确查看浏览器上的 cookie?这个问题可能是什么?

尝试禁用 chrome://flags/#network-service 它应该可以正常工作。

您是否尝试过打开一个指向服务器 https://*.amazonaws.com 的选项卡并在那里检查?

cookie 将设置在服务器的域中,但您不会在本地服务器的 cookie 存储中看到它。原因是所有网络存储都受同源策略约束,您的文档只能从其自己的域访问存储,并且服务器只能为其域设置 cookie。

这里的基本原理是,如果我向你发送了一个 link 到一个流氓文档,它不能泄露你的 SO cookie,即使它们可以从 JS 访问,也不能向流氓服务器发送请求覆盖 SO 上的 cookie。