Springboot2+vue 前后端分离 springsession无法获取缓存信息的问题 sessionId不一致的问题

首先可以肯定的是这个问题的原因就是跨域的问题。

本地的请求服务器、或者请求局域网内的其他服务器都不行,没办法开发调试

 

 

跨域的一些配置全都配置了,还是不能获取到登录用户的信息。

跨域的时候无法传递Cookies,所以sessionid每次都不一样。

网上说的设置Origin为同源什么的,试过了都不好使。

 

通过查资料得知

DefaultCookieSerializer 中 sameSite值默认为Lax
通过百度得知:
SameSite-cookies是一种机制,用于定义cookie如何跨域发送。这是谷歌开发的一种安全机制,并且现在在最新版本(Chrome Dev 51.0.2704.4)中已经开始实行了。SameSite-cookies的目的是尝试阻止CSRF(Cross-site request forgery 跨站请求伪造)以及XSSI(Cross Site Script Inclusion (XSSI) 跨站脚本包含)攻击。
Strict

Strict是最严格的防护,有能力阻止所有CSRF攻击。然而,它的用户友好性太差,因为它可能会将所有GET请求进行CSRF防护处理

Lax

属性只会在使用危险HTTP方法发送跨域cookie的时候进行阻止,例如POST方式

所以,把sameSite设置为null,就可以了。

 

添加一个配置类:

@Configuration
public class SpringSessionConfig {

    public SpringSessionConfig() {
    }

    @Bean
    public CookieSerializer httpSessionIdResolver() {
        DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
        // 取消仅限同一站点设置
        cookieSerializer.setSameSite(null);
        return cookieSerializer;
    }
}

 

 

 

参考了:

https://www.cnblogs.com/hujinshui/p/11025848.html

https://segmentfault.com/a/1190000017175342?utm_source=tag-newest

https://segmentfault.com/a/1190000017824101

 

非常感谢大佬的分享 感谢感谢感谢感谢感谢

你可能感兴趣的:(Springboot2+vue 前后端分离 springsession无法获取缓存信息的问题 sessionId不一致的问题)