美文网首页
前后端分离Cookie sameSite坑 跨域之坑

前后端分离Cookie sameSite坑 跨域之坑

作者: rock_fish | 来源:发表于2020-06-17 18:35 被阅读0次

    在前后端分离解决跨域问题过程中,利用CORS解决跨域问题,前后端按照规范处理了,但不管怎样session都是不一致...

    SameSite Cookie 应该是一种新的cookie属性值,我看到很多大型网站如百度都没有用到,
    他是防止 CSRF 攻击 具体可看 https://www.cnblogs.com/ziyunfei/p/5637945.html

    spring web 最新版默认生成为SameSite=Lax,奇怪的是用spring data Session redis 后 cookie新增了 SameSite这个字段,所以不能携带cookie进行跨域post访问,文档上也不表明什么时候开始的,坑的是默认为Lax也不能设置,
    遂现在将web版本降级
    因为服务端返回给客户端的set-cookie中带有samesite=lax,这就是问题的根源,它表示不能携带cookie进行跨域post访问,然而我们是需要携带cookie的

    解决办法:

    @Bean public CookieSerializer httpSessionIdResolver(){
    DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); cookieSerializer.setCookieName("token");
    cookieSerializer.setUseHttpOnlyCookie(false);
    cookieSerializer.setSameSite(null);
    return cookieSerializer;

    }
    这样就能正常携带cookie了,但是前提是进行ajax请求时加上

    xhrFields: {
    withCredentials: true
    }
    它让ajax能够携带cookie请求,后端需要设置

    response.setHeader("Access-Control-Allow-Credentials", "true");
    允许cookie跨域,这样就成功

    原文链接:https://blog.csdn.net/qq_37060233/article/details/86595102

    相关文章

      网友评论

          本文标题:前后端分离Cookie sameSite坑 跨域之坑

          本文链接:https://www.haomeiwen.com/subject/llczfhtx.html