對於未來chrome80 samesite問題的兼容解決方案


未來chrome80會默認(SameSite: lax)在跨域請求的情況下不允許跨域攜帶cookie給后端,導致所有跨域場景下使用cookie進行鑒權的服務會受到影響。
網站可以選擇顯式關閉SameSite屬性,將其設為None。不過,前提是必須同時設置Secure屬性(Cookie 只能通過 HTTPS 協議發送),否則無效。
但是設置了SameSite為None, 很難保證在非chrome瀏覽器上一定是兼容的,所以基於兼容性考慮有兩個方案:
1.采用兩套cookie 例如原cookie中已經種入了session-id=xxxxx,可以維持不變,再額外種入另一個cookie session-id-2=xxxxx同時設置特性SameSite為none secure: true。這樣可以兼容新舊版的所有瀏覽器。這樣就要求后端取得時候判斷session-id不存在,再取cookie session-id-2的值
2.JWT方案,統一把token放在header的authorization,就不存在跨域攜帶cookie的困擾了
第一個方案主要適配在於后端,前端基本不需要變動,第二個方案需要前后端做一定的改造,視情況而定


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM