Fetch请求HTTPS后端时SameSite=None带Secure属性的Cookie未发送问题
问题根本原因
- 你后端设置的Cookie带
Secure属性,该属性的规则是仅当请求上下文是HTTPS协议时,浏览器才会携带该Cookie发起请求。你当前前端运行在HTTP协议的http://127.0.0.1下,哪怕请求的目标后端接口是HTTPS,浏览器也不会主动携带Secure属性的Cookie,这就是你遇到的问题的核心诱因。 - 额外需要排查的CORS配置缺失:后端如果没有正确配置跨域相关响应头,也会导致Cookie携带失败,需要同时确认两个配置:
- 响应头
Access-Control-Allow-Origin不能设置为通配符*,必须明确填写你当前前端的源地址http://127.0.0.1 - 响应头
Access-Control-Allow-Credentials必须设置为true
- 响应头
修复方案
- 本地开发场景:临时关闭后端Cookie的
Secure属性,或者将本地前端服务升级为HTTPS协议运行 - 生产场景:前后端都统一使用HTTPS协议部署,即可同时满足Secure Cookie规则和安全要求
内容的提问来源于stack exchange,提问作者Nils Baumgartner
相关产品推荐
相关产品推荐

