本指南可協助您瞭解Chrome 停止支援第三方 Cookie對外掛程式造成的影響,以及必須進行的必要變更。
總覽
2024 年 1 月 4 日,Chrome 推出追蹤保護功能,針對 1% 的使用者,根據預設限制網站存取第三方 (3P) Cookie。2025 年初,Chrome 預計完全淘汰第三方 Cookie。
Classroom 外掛程式至少會影響兩個使用者歷程:
- Google 單一登入 (SSO) 流程
- 將使用者導向至新分頁
Google 單一登入 (SSO)
在 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。FedCM 目前已在 Chrome 中推出,並且在 Classroom 中支援,但行為和功能仍在開發中,歡迎提供意見回饋。
遷移至 GIS。如果您使用已淘汰的 GSIv2 程式庫 (也稱為 Google 登入程式庫),強烈建議您遷移至 GIS,因為 GSIv2 未來的支援情況尚不明確。
申請暫緩移除功能的試用期。Chrome 提供淘汰試用版,讓非廣告用途延後第三方 Cookie 淘汰的影響。如果申請通過,您將獲得一個可用於外掛程式的憑證,讓您在 2024 年前為來源啟用第三方 Cookie,同時遷移至 SAA 等長期解決方案。提交後,系統會要求您提供錯誤 ID 或破損報告連結。我們的團隊已為 Classroom 外掛程式提出這項問題,您可以提供這個錯誤。