Spring session、set-cookie失效、跨域、每次請求sessionid不一致,Cookie sameSite坑 跨域之坑
阿新 • • 發佈:2020-08-17
最近公司做的一個專案,在電腦端開發一直都沒有問題,但是把專案方到微信公眾號裡開啟網頁登入的時候就會出現每次請求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才能解決問題,轉換方式這裡不展開討論