美文网首页
关于跨域访问Zuul和gateway,Session不一致的问题

关于跨域访问Zuul和gateway,Session不一致的问题

作者: 25799c5cd22c | 来源:发表于2021-01-14 20:47 被阅读0次

    ## 问题描述

    之前运行良好的项目,使用Zuul作为网关负责请求的转发与负载均衡,这段时间修改了项目突然发现不支持session跨域了,sensitive-headers:也设置了,withCredentials: true也加了,但是每次请求sessionId都不一致,很苦恼,两天之后发现问题,

    一直以为不是错误和异常的一条消息

    一直以为不是错误和异常的一条消息,点开后发现Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute

    ## 原因

    新版的Chrome 当请求设置为  “SameSite=None”和“Secure”时,才会发送cookie

    得到教训,要达到 0 error, 0 warning 必须把warning视作error

    ## 解决方案

    添加bean

    @Bean

    public CookieSerializerhttpSessionIdResolver() {

    DefaultCookieSerializer cookieSerializer =new DefaultCookieSerializer();

        cookieSerializer.setUseHttpOnlyCookie(false);

        cookieSerializer.setSameSite("None");

        cookieSerializer.setCookiePath("/");

        cookieSerializer.setUseSecureCookie(true);

        return cookieSerializer;

    }

    其他方法

    1.降低浏览器版本在79以下,或者换别的浏览器

    2.换https

    3.将前端的url和后端请求接口设置在同一域名下

    4.修改Chrome浏览器设置(不安全)

    Chrome浏览器地址栏中输入

    chrome://flags/#same-site-by-default-cookies

    将下图按钮设置为disabled

    其实修改这个就可以

    [更详细可见CoreyJu]

    相关文章

      网友评论

          本文标题:关于跨域访问Zuul和gateway,Session不一致的问题

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