1. 程式人生 > 其它 >chrome 瀏覽器升級後, 無法儲存session 以及 cookie 的問題

chrome 瀏覽器升級後, 無法儲存session 以及 cookie 的問題

週一早上一開啟電腦準備開發專案時候, 突然發現網站登入跳轉有異常, 怎麼都登入不上一直跳回登入頁. 通過抓包排除了後端的原因後, 發現後端的set-cookie沒有效果, 突然想起Chrome禁用第三方Cookies的計劃, 開啟Edge的更新記錄發現已經自動更新到Chromium 91了.

因為開發環境需要, 我們把瀏覽器的same-site-by-default-cookies和cookies-without-same-site-must-be-secure兩項都在flag裡禁用了. 但是更新到91版本後, Chromium直接把選項給關了而且設定成預設開啟, 那就沒辦法在flag裡設定了.

解決方案
1.

低於91版本的Chrome瀏覽器:

Chrome中訪問地址chrome://flags/ 搜尋samesite 將same-site-by-default-cookies,和SameSite by default cookies這兩項設定為Disabled後重啟瀏覽器再執行專案即可解決。該設定預設情況下會將未指定SameSite屬性的請求看做SameSite=Lax來處理。

2. window,91版本及以上的Chrome瀏覽器:(方案1中的設定在91版本後已被Chorme移除)

Windows:開啟Chrome快捷方式的屬性,在 目標 後新增

--disable-features=SameSiteByDefaultCookies
或者新增

--flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end
,點選確定,(注意!!!一定要關閉所有瀏覽器,目標後一定要新增幾個空格)然後重啟瀏覽器。

Mac:Mac系統下可以通過命令列攜帶引數開啟瀏覽器的方式來解決,前提須關閉所有瀏覽器視窗並退出瀏覽器後再進行操作。

開啟Chrome命令:
open -a "Google Chrome" --args --disable-features=SameSiteByDefaultCookies
開啟Chromium版Edge瀏覽器命令:
open -a "Microsoft Edge" --args --disable-features=SameSiteByDefaultCookies


3. 94及以上版本的Chrome瀏覽器

Chromium專案官網提到在94版本通過命令列禁用設定SameSite預設值的方式會被移除,到時方案1和方案2的方式都將無法使用,後續可通過nginx等代理工具或軟體將跨域請求轉為非跨域請求來解決改問題。以後如果要在開發環境作業, 老老實實上https也許是最簡單的一種辦法。

感謝! https://juejin.cn/post/6967695146322247716 及 https://gadzan.com/chrome-edge-91hou
————————————————
版權宣告:本文為CSDN博主「Jason–json」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/weixin_46146313/article/details/117707199