chrome 瀏覽器(>=80) axios 攜帶 Cookie 無效問題


事情是這樣的:

一天公司需求重新修改某一個項目,我打開了代碼,發現axios獲取數據功能總是報用戶不存在...奇了怪了前端,后端都沒有做過修改,以前可以正常跑的應用,竟然不能用了?

axios已經開啟攜帶cookie

import axios from 'axios';
axios.defaults.withCredentials = true

經過排查

發現原來是谷歌新增了 一個規則 SameSite

意思是為了防止CSRF攻擊。谷歌要求你setCookie 設置 SameSite=None 才能在 axios上使用cookie

設置方法:

2.3 None
Chrome 計划將Lax變為默認設置。這時,網站可以選擇顯式關閉SameSite屬性,將其設為None。不過,前提是必須同時設置Secure屬性(Cookie 只能通過 HTTPS 協議發送),否則無效。
下面的設置無效。
Set-Cookie: widget_session=abc123; SameSite=None
下面的設置有效。
Set-Cookie: widget_session=abc123; SameSite=None; Secure

參考鏈接:

阮一峰的網絡日志=Cookie 的 SameSite 屬性


免責聲明!

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



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