如何调试浏览器拒绝 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的主要内容,如果未能解决你的问题,请参考以下文章