Spring session、set-cookie失效、跨域、每次请求sessionid不一致,Cookie sameSite坑 跨域之坑
最近公司做的一个项目,在电脑端开发一直都没有问题,但是把项目放到微信公众号里打开网页登录的时候就会出现每次请求sessionid不一致的问题。
原因有很多,先贴图
session是后台生成的,由于验证码信息是放了在session里面,每次的session不一致,导致没有办法从session里面拿到响应的信息,导致这个问题是因为谷歌有一个sameSite
SameSite Cookie 应该是一种新的cookie属性值,我看到很多大型网站如百度都没有用到,
他是防止 CSRF 攻击 具体可看 https://www.cnblogs.com/ziyunfei/p/5637945.html
解决办参考:
https://blog.csdn.net/boom_man/article/details/84642040
@Bean public CookieSerializer httpSessionIdResolver(){ DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); cookieSerializer.setCookieName("token"); cookieSerializer.setUseHttpOnlyCookie(false); cookieSerializer.setSameSite(null); return cookieSerializer }
加上这个之后,还要把HTTP换成HTTPS才能解决问题,转换方式这里不展开讨论