我正在嘗試通過 iframe 將我的 angular 應用程序嵌入到另一個站點。在我的 angular 應用程序中,我正在設置 cookie,因此當我嘗試將 angular 應用程序嵌入到我的其他站點時,Devtools 顯示一個問題,告訴我未設置 samesite=none,因此正在使用默認的 samesite=lax,這可以防止 angular 應用程序設置 cookie。
之後,我嘗試在響應標題中設置條目“set-cookie: samesite=none;secure”,但它不起作用。正如您在下面的屏幕截圖中看到的,瀏覽器仍然使用“same-site=lax”。
此問題發生在 Chrome 和 Edge(Chromium) 上,但不在 Firefox 中。
問題:
截圖:
您誤解了Set-Cookie
的語法,並且錯誤地省略了 cookie 的名稱和值。查看有關該主題的 MDN 頁面:
cookie 定義以名稱-值對開始。
因此,當瀏覽器收到帶有以下標頭的響應時,
set-cookie: samesite=none; secure
它創建(或更新)一個Secure
cookie的,其名稱為samesite
,其價值是none
。因為SameSite
屬性沒有指定,因為鉻現在默認Lax
的SameSite
屬性,所產生的cookie被有效地標記SameSite=Lax
您的瀏覽器。
要解決此問題,您必須為 cookie 選擇名稱和值,並且必須在任何其他 cookie 屬性之前指定 cookie 的名稱和值:
Set-Cookie: <cookie-name>=<cookie-value>; SameSite=None; Secure
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句