Loading

chrome 浏览器(>=80) axios 携带 Cookie 无效问题

事情是这样的:

一天公司需求重新修改某一个项目,我打开了代码,发现axios获取数据功能总是报用户不存在...奇了怪了前端,后端都没有做过修改,以前可以正常跑的应用,竟然不能用了?

axios已经开启携带cookie

import axios from 'axios';
axios.defaults.withCredentials = true

经过排查

发现原来是谷歌新增了 一个规则 SameSite

意思是为了防止CSRF攻击。谷歌要求你setCookie 设置 SameSite=None 才能在 axios上使用cookie

设置方法:

2.3 None
Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。
下面的设置无效。
Set-Cookie: widget_session=abc123; SameSite=None
下面的设置有效。
Set-Cookie: widget_session=abc123; SameSite=None; Secure

参考链接:

阮一峰的网络日志=Cookie 的 SameSite 属性

posted @ 2020-09-11 16:11  ZJH_BLOGS  阅读(2165)  评论(0编辑  收藏  举报