zoukankan      html  css  js  c++  java
  • 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 属性

  • 相关阅读:
    SQL 通配符
    低压电器及其控制
    计算机组成原理
    ASP.NET MVC 4 跨域
    C#排序算法小结
    C# 集合扩展快速排序算法
    C# 排序算法记录
    文件大小
    ProcDump
    C# 获取文件MD5校验码
  • 原文地址:https://www.cnblogs.com/zjhblogs/p/13652307.html
Copyright © 2011-2022 走看看