我在 set-cookie 中添加了 SameSite=None; Secure;,但是Cookie没有被设置,导致我无法登录我的网站。
response.writeHead(200, {
'Content-Type': 'application/json',
'Set-Cookie': 'token=' + token + '; SameSite=None; Secure; Expires=' + time.toUTCString() + '; Path=/' + '; Domain=' + hostname,
'csrf-token': csrfToken
});
我在开发者工具下的 Application>Storage>Cookies 中检查了 cookie 并查看了更多细节,它显示了一个警告信息:
这个 set-cookie 被阻止了,因为它没有通过安全连接发送
Chrome 阻止了 cookies,因为我在开发环境中发送 http 请求。但是,在 Firefox 浏览器上进行测试时可以正常登录。 我将单词 secure 放入 cookie 中并且它能够正常工作,但因为单词 secure 必须与 samesite = none 一起使用才能进行跨域访问,否则 cookie 将被阻止。 我的问题是,为什么当我使用 secure 时,只有 Chrome 浏览器会阻止 cookie,但在其他浏览器中它却是有效的。 如果我不使用 secure,我将无法测试支付网关,因为如果我不使用安全方式,则 Chrome 将阻止跨源请求...