如何调试浏览器拒绝 cookie

Posted

技术标签:

【中文标题】如何调试浏览器拒绝 cookie【英文标题】:how to debug cookie rejection by the browser 【发布时间】:2018-01-27 21:42:58 【问题描述】:

使用 Chrome(版本 59.0.3071.115(官方构建)(64 位))或 Firefox(开发者版本 56.0b3(64 位)),我无法理解为什么我看不到在响应头,存储在浏览器本地存储中。

我的HTTP请求头如下:

Host: localhost:3000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost:3000/SignIn
content-type: application/json
origin: http://localhost:3000
Content-Length: 46
Connection: keep-alive

我的响应头如下:

x-powered-by: Express
content-type: application/json; charset=utf-8
access-control-allow-origin: *
Vary: *
content-length: 32
etag: W/"20-LcTp1bBlcTS0d04Fav3DxiGJgW0"
set-cookie: connect.sid=s%3ABBRbPNpMXcweAtfATcULtOOzgMwlBrtC.qX8a9M%2BrsKsjhdeRL7eAyzFrkjQMOoWw36DIhSdhiGQ; Domain=http://localhost:3000; Path=/; HttpOnly
date: Sat, 19 Aug 2017 08:15:01 GMT
connection: close

使用 Firefox 开发工具的“存储”选项卡或 Chrome 的“应用程序”选项卡,我没有看到任何 cookie 被存储。我在这些工具中也找不到任何错误消息来告诉我为什么没有存储 cookie。

我错过了什么?

【问题讨论】:

您的 Firefox 版本? (Firefox 有一些关于显示 cookie 的错误,当然现在修复了 我已经更新了描述以提及 Chrome 和 Firefox 的版本。 谢谢,FF的非稳定版已经足够稳定了,但是请您检查一下FF稳定版的代码吗?或者提供一个测试用例? 【参考方案1】:

我在 Firefox Developer Edition 93 上,控制台 (ctrl + shift + k) 准确地显示了这些信息——这个场景适用于在sameSite == lax 场景中设置第三方cookie,因此cookie 是rejected for invalid domain

【讨论】:

以上是关于如何调试浏览器拒绝 cookie的主要内容,如果未能解决你的问题,请参考以下文章

百度搜素时,火狐显示“此问题可能是因为禁用或拒绝 Cookie 导致”

如何如何发送cookie

如何使用edit this cookie

17-3 cookie和session

cookie

chrome 如何调试js