React+Django认证问题:浏览器未存Cookie但响应含Set-Cookie头
我基于React前端与Django后端搭建系统,近期在认证功能上遇到异常:浏览器无法保存后端返回的Cookie(包含csrftoken和sessionid),导致登出等依赖Cookie的功能完全失效。通过浏览器开发者工具可以确认,响应中明确存在Set-Cookie头,但Cookie始终未出现在浏览器的存储列表中。不过直接访问Django REST Framework的登录接口(如localhost:8000/users/login/)完成登录操作时,Cookie能够正常存入浏览器存储。
已尝试的排查与修复操作:
- 使用
fetch发起请求时,已配置credentials: 'include',但问题依旧;且通过res.headers.get('Set-Cookie')获取到的值为null,遍历所有响应头仅能看到两个基础字段(如Content-Type: application/json) - 使用
axios发起请求时,已配置withCredentials: true,问题未得到解决 - 在Django后端中配置了CORS相关设置,调整过Cookie的
SAMESITE、HTTPONLY属性,以及各类CORS规则,均未解决问题
相关截图说明:
- 存储截图:当前浏览器存储中仅存在1个Cookie,预期应包含
csrftoken和sessionid两个Cookie - 响应头截图:接口响应中包含两个
Set-Cookie头,分别对应sessionid和csrftoken - 响应Cookie截图:展示响应中Cookie的具体参数信息
内容的提问来源于stack exchange,提问作者Plegeus
相关产品推荐
相关产品推荐

