本指南可帮助您了解 Chrome 停止支持第三方 Cookie 对插件的影响以及需要进行的更改 ,这些更改由 Chrome 停止支持第三方 Cookie 引入。
概览
2024 年 1 月 4 日,Chrome 推出了跟踪保护功能,默认情况下会限制 1% 的用户访问第三方 (3P) Cookie。Chrome 预计将在 2025 年初完全淘汰 3P Cookie。
Google 课堂插件中至少有两个用户历程会受到影响:
- Google 单点登录 (SSO) 流程
- 在新标签页中启动用户
Google SSO
在 Google SSO 流程中,系统会将用户导航至一个对话框,以便用户登录自己的 Google 账号并同意数据共享。

图 1. iframe 内 SSO 期间三种不同 Cookie 上下文的可视化效果:(1) 顶级 Google 课堂应用,(2) 3P 嵌入式 iframe(在本例中为 localhost 上的 DavidPuzzle),以及 (3) 顶级 OAuth 对话框。
在典型的插件实现中,系统会在完成此登录流程时设置会话 Cookie。插件 iframe(位于嵌入式上下文中)会 重新加载,现在包含会话 Cookie,允许用户访问其 经过身份验证的会话。但是,如果停用了 3P Cookie,则嵌入式上下文(如插件 iframe)中的网站无法访问其各自顶级上下文中的 Cookie。 对于 Google 课堂插件,用户无法访问其经过身份验证的会话,并且会陷入登录循环。
对于在嵌入式 iframe 上下文中设置会话 Cookie 的实现, 可以使用 CHIPS API 来缓解此问题,该 API 允许嵌入式网站 设置和访问分区 Cookie(Cookie 的键同时包含嵌入方网域和 被嵌入方网域)。但是,在登录对话框的顶级上下文中设置会话 Cookie 的实现无法访问 iframe 中的未分区 Cookie,从而阻止登录。
新标签页
出于类似的原因,如果用户在插件 iframe 中有一个基于 Cookie 的经过身份验证的会话,并且 iframe 在新顶级标签页中启动用户以进行某项活动,则顶级标签页无法访问 iframe 中的分区会话 Cookie。这会阻止 iframe 会话状态保留到新标签页活动中,并且可能会强制用户在新标签页中重新登录。 根据设计,CHIPS API 无法解决此问题;分区 iframe Cookie 在顶级上下文中不可访问。
开发者操作
您应考虑采取一些措施,以确保在 Chrome 逐步淘汰 3P Cookie 时,插件能够继续按预期运行。
- 审核 插件关键用户历程中的 3P Cookie 使用情况。更具体地说,请在停用 3P Cookie 的情况下进行测试,以评估对 特定实现的影响。
了解 Storage Access API 。对于所有插件实现,我们建议 您了解 Storage Access API (SAA)。SAA 使 iframe 能够在 iframe 上下文之外访问其 Cookie。SAA 目前已在 Chrome 中提供,并且受 Google 课堂应用支持。
选择使用 FedCM 。此外,如果您使用 GIS(即“使用 Google 账号登录” 库),身份团队的官方指南是选择使用 FedCM。这不会取代 3P Cookie 功能,但最终会作为 3P Cookie 弃用的一部分在 GIS 中强制使用。FedCM 目前已在 Chrome 中提供,并且受 Google 课堂支持,但行为和功能仍 在开发中,欢迎您提供反馈。
迁移到 GIS 。如果您使用的是已废弃的 GSIv2 库(也称为 Google 登录库),强烈建议您迁移到 GIS,因为 GSIv2 的后续支持情况尚不明确。
申请延迟弃用试用期 。Chrome 提供了一项 弃用 试用期,允许非广告用例延迟 3P Cookie 弃用的影响。如果申请获得批准,您将获得一个令牌,可以在插件中使用该令牌,以便在迁移到 SAA 等长期解决方案的同时,在 2024 年期间为您的来源启用 3P Cookie。申请后,系统会要求您提供 bug ID 或损坏报告的链接。我们的团队已 为 Google 课堂插件提交了此 bug,您可以提供此 bug。