本指南可協助您瞭解Chrome 停止支援第三方 Cookie對外掛程式造成的影響,以及必須進行的必要變更。
總覽
2024 年 1 月 4 日,Chrome 推出了追蹤保護功能,針對 1% 的使用者,根據預設限制網站存取第三方 (3P) Cookie。2025 年初,Chrome 預計全面淘汰第三方 Cookie。
Classroom 外掛程式至少會影響兩個使用者歷程:
- Google 單一登入 (SSO) 流程
- 將使用者導向至新分頁
Google 單一登入
在 Google 單一登入流程中,系統會將使用者導向對話方塊,讓他們登入 Google 帳戶並同意分享資料。
圖 1. 從 iframe 中,以視覺化方式呈現 SSO 期間的三種不同 Cookie 內容:(1) 頂層 Classroom 應用程式、(2) 第三方嵌入 iframe (在本例中為 localhost 上的 DavidPuzzle),以及 (3) 頂層 OAuth 對話方塊。
在一般的外掛程式實作中,系統會在這個登入程序完成時設定工作階段 Cookie。系統會重新載入位於嵌入式內容中的外掛程式 iframe,並附加工作階段 Cookie,讓使用者存取已驗證的工作階段。不過,如果停用第三方 Cookie,則嵌入式內容 (例如外掛程式 iframe) 中的網站無法從各自的頂層內容存取 Cookie。針對 Classroom 外掛程式,使用者無法存取已驗證的工作階段,並陷入登入循環。
如果是在內嵌 iframe 內容中設定工作階段 Cookie 的實作方式,CHIPS API 則可緩解這個問題,讓嵌入網站設定並存取分區 Cookie (同時在嵌入器和內嵌網域中啟用的 Cookie)。不過,如果在登入對話方塊的頂層內容中設定工作階段 Cookie,就無法存取 iframe 中的未分割 Cookie,因此無法登入。
新分頁
基於類似原因,如果使用者在外掛程式 iframe 中擁有以 Cookie 為基礎的驗證工作階段,而 iframe 會將使用者導向活動的新頂層分頁,則頂層分頁無法從 iframe 存取分割的工作階段 Cookie。這可避免 iframe 工作階段狀態持續存在於新分頁活動,並可能會強制使用者在新分頁中再次登入。根據設計,CHIPS API 無法解決這個問題;在頂層情境中無法存取分割的 iframe Cookie。
開發人員動作
在 Chrome 逐步淘汰第三方 Cookie 的同時,您可以考慮採取幾項行動,確保外掛程式能繼續正常運作。
- 稽核外掛程式的關鍵使用者歷程中的第三方 Cookie 使用情形。具體來說,請在停用第三方 Cookie 的情況下進行測試,以評估特定實作的影響。
探索 Storage Access API。建議您針對所有外掛程式實作探索 Storage Access API (SAA)。SAA 可讓 iframe 存取 iframe 內容以外的 Cookie。SAA 目前可在 Chrome 中使用,並由 Classroom 應用程式提供支援。
選擇採用 FedCM。此外,如果您使用「使用 Google 帳戶登入」程式庫的 GIS,身分團隊的官方指南是選擇加入 FedCM。這並不會取代第三方 Cookie 功能,但 GIS 最終會要求使用這項功能,以便淘汰第三方 Cookie。目前 Chrome 已在 Chrome 中使用 FedCM,但 Classroom 仍支援 FedCM,但行為和功能仍在開發階段,歡迎提供寶貴意見。
遷移至 GIS。如果您使用已淘汰的 GSIv2 程式庫 (又稱為 Google 登入資料庫),強烈建議您改用 GIS,因為日後無法對 GSIv2 提供支援。
申請暫緩移除功能的試用期。Chrome 提供淘汰試用計畫,允許非廣告用途延後淘汰第三方 Cookie 造成的影響。如果申請通過,您將獲得一個可用於外掛程式的憑證,讓來源網站在 2024 年前繼續啟用第三方 Cookie,同時遷移至 SAA 等長期解決方案。提交後,系統會要求您提供錯誤 ID 或破損報告連結。我們團隊已為 Classroom 外掛程式提交這個項目,但您可以提供這個錯誤。