SameSite=None; Secure设置后,为何本地开发环境还是报CSRF错误?
我在后端设置了Cookie的SameSite为None并加上了Secure属性,但本地开发环境用HTTPS运行时,跨域请求还是被报CSRF错误。明明生产环境没问题,本地环境该怎么调试啊?
尝试过这样配置Cookie:
res.cookie('session', token, {
httpOnly: true,
secure: true,
sameSite: 'none'
});
但本地用mkcert生成的证书访问https://localhost:3000时,浏览器控制台显示:Cross-Origin Request Blocked,同时开发者工具里Cookie根本没有携带过去。
生产环境部署在https://api.example.com正常工作,但本地联调后端接口就失败。难道SameSite设置还有其他限制条件吗?是不是开发环境需要额外配置什么?
试试在后端加上完整的CORS配置,比如这样:
还有,确认下你的前端请求是不是带了
withCredentials: true,少了这个Cookie肯定传不过去。应该能用,不行再查下mkcert的根证书装好了没。