SameSite Cookie 设置后登录状态不生效是怎么回事?
我最近在 React 项目里处理登录逻辑,后端设置了 Set-Cookie 响应头,包含 SameSite=Lax 和 Secure。但我在本地开发时(http://localhost:3000)发现登录后 cookie 根本没被浏览器保存,导致后续请求都拿不到认证信息。是不是因为本地不是 HTTPS?可线上环境是 HTTPS 啊。
我用 fetch 发起登录请求的代码大概是这样:
fetch('/api/login', {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ username, password })
})
难道 SameSite=Lax 在 localhost 下会有问题?还是我漏了什么配置?
或者本地装个 mkcert 之类的搞个本地 HTTPS 开发证书,一劳永逸。