django+vue无法设置跨域cookies

后端开发环境:Django 3.2.9
前端开发环境:vue3 + ts
浏览器版本:chrome(96.0.4664.45)

问题:
最近开发一个新项目,前端使用axios进行http类的封装,前后端分离进行api调试,进行登录后,后续的api调用发现无法识别到cookie。

尝试情况:
1、axios设置withCredentials,无效

2、分析api请求和响应信息,发现响应标头有一段警告信息


大概意思就是:set-cookie被阻止,无法设置,原因是SameSite=Lax
随后查找关于SameSite的相关信息发现:SameSite需要设置为None值,且开启Secure属性才行
但经过一轮查找尝试,发现我目前的chrome版本已经移除了这两个属性的设置,所以该方法也无法解决问题。

3、联想到既然是响应标头出现报警信息,那么可以考虑从django入手。在官网上输入"SAMESITE",果然找到了相关的说明,通过在settings.py设置SESSION_COOKIE_SAMESITE='None'SESSION_COOKIE_SECURE=True后成功解决问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容