迁移到 FedCM

本指南可帮助您了解 Web 应用的变更 由 Federated Credentials Management API (FedCM)。

启用 FedCM 后,浏览器会显示用户提示,不显示第三方 Cookie。

概览

Privacy Sandbox for the WebChrome 从网络中移除第三方 Cookie 对 Google Identity 服务和用户登录机制进行重大更改。

FedCM 支持更私密的登录流程,无需使用 第三方 Cookie。浏览器可以控制用户设置,显示用户提示, 并且只有在显式用户请求的情况下,才联系身份提供方(例如 Google) 已征得用户同意。

对于大多数网站,迁移过程均通过向后兼容 对 Google Identity Services JavaScript 库的更新。

有关自动登录功能的最新动态

适用于 Google Identity 服务的 Federated Credential Management (FedCM) Beta 版 已于 2023 年 8 月推出。许多开发者测试了该 API, 提供宝贵的反馈意见。

Google 从开发者那里听到的一个回应是关于 FedCM 自动登录 流用户手势要求。为了更好地保护隐私,Chrome 要求用户执行以下操作: 再次确认要使用 Google 账号登录该网站。 Chrome 实例,即使用户在 FedCM 之前批准了该网站 部署。您只需点击一下 一键提示,表明用户的登录意图。这项变更可能会导致 某些网站的自动登录转化率最初会受到影响。

最近,在 M121 中,Chrome 对 FedCM 自动登录功能进行了更改 用户体验流程仅当第三方 Cookie 被植入时,才需要重新确认 受限。这意味着:

  1. 在第三方 Cookie 限制逐步提升到 100% 之前(请参阅“隐私权”部分) 沙盒新闻和更新页面,了解最新时间表)。 回访用户无需重新确认 FedCM 自动登录。 如果用户通过 FedCM 界面重新确认,此次重新确认将计入 后第三方 Cookie 时代的用户手势要求。

  2. FedCM 自动登录将在 目前或默认情况下, Chrome 的未来。

实施这项更改后,我们建议所有自动登录开发者改用 FedCM ,以减少对自动登录转化率的干扰。

对于自动登录流程,GIS JavaScript 不会在旧版上触发 FedCM Chrome(在 M121 之前),即使您的网站选择启用 FedCM。

用户体验历程差异

使用 FedCM 和不使用 FedCM 的一键式体验只有 细微差异。

单次会话新用户

通过使用 FedCM,One Tap 会显示域名而不是应用名称。

使用 FedCM 不借助 FedCM
使用 FedCM 的单次会话新用户 不使用 FedCM 的单次会话新用户

单次会话回访用户(已停用自动登录)

通过使用 FedCM,One Tap 会显示域名而不是应用名称。

使用 FedCM 不借助 FedCM
使用 FedCM 的单次会话回访用户历程(已停用自动登录) 不使用 FedCM 的单次会话回访用户历程(已停用自动登录)

单次会话回访用户(在启用自动登录的情况下)

使用 FedCM,用户可以在 5 天内点击 X 取消自动登录 秒,而不是点击 Cancel 按钮。

使用 FedCM 不借助 FedCM
使用 FedCM(启用了自动登录)的单次会话回访用户历程 不使用 FedCM 的单次会话回访用户历程(启用自动登录)

多会话

通过使用 FedCM,One Tap 会显示域名而不是应用名称。

使用 FedCM 不借助 FedCM
使用 FedCM 的多会话用户 未使用 FedCM 的多会话用户

准备工作

检查您的浏览器设置和版本是否支持 FedCM API。 建议更新到最新版本。

  • FedCM API 在 Chrome 117 或更高版本中提供。

  • Chrome 已启用第三方登录设置。

  • 如果您的 Chrome 浏览器版本为 119 或更低版本,请打开 chrome://flags,然后 启用实验性 FedCmWithoutThirdPartyCookies 功能。此步骤 Chrome 浏览器 120 或更高版本不需要此设置。

迁移您的 Web 应用

请按照以下步骤启用 FedCM,评估潜在的迁移影响,并 根据需要更改现有 Web 应用:

1. 添加布尔值标志,以便在使用以下代码进行初始化时启用 FedCM:

2. 取消在代码中对 isDisplayMoment()isDisplayed()isNotDisplayed()getNotDisplayedReason() 方法的使用。

为了加强用户隐私保护,google.accounts.id.prompt 回调将 在 PromptMomentNotication 对象。移除依赖于 与显示时刻相关的方法他们是isDisplayMoment()isDisplayed()isNotDisplayed()getNotDisplayedReason() 方法。

3. 在代码中移除getSkippedReason() 方法的使用。

虽然系统会从isSkippedMoment() PromptMomentNotication 中的 google.accounts.id.prompt 回调 对象,则系统不会提供详细原因。移除依赖于 getSkippedReason() 方法。

请注意,已忽略时刻通知 isDismissedMoment() 和 相关详细原因方法 getDismissedReason() 保持不变 当 FedCM 启用后。

4. 从 data-prompt_parent_idintermediate_iframes移除 position 样式属性。

浏览器控制用户提示的大小和位置、自定义位置 不支持一键快捷功能。

5. 根据需要更新页面布局。

浏览器会控制用户提示的大小和位置。根据 单个网页的布局,某些内容可能会以自定义 我们不支持以任何方式设置桌面版 YouTube 上的一键快捷功能, 样式属性, data-prompt_parent_id, intermediate_iframes、自定义 iframe 和其他创造性方式。

更改网页布局,提升在查看重要信息时的用户体验 被遮挡不要围绕一键式提示构建用户体验,即使您认为 它位于默认位置。由于 FedCM API 是浏览器中介的 不同的浏览器供应商可能会将提示的位置 。

6. 如果您的 Web 应用从跨源 iframe 调用 One Tap API,请将 allow="identity-credentials-get" 属性添加到父框架。

如果某个 iframe 的 origin 和 父级来源。例如:

  • 不同的网域:https://example1.comhttps://example2.com
  • 不同的顶级域名:https://example.ukhttps://example.jp
  • 子网域:https://example.comhttps://login.example.com

    为了加强用户隐私保护,从跨源 iframe 调用 One Tap API 时, 您必须添加 allow="identity-credentials-get" 属性:iframe

    <iframe src="https://your.cross-origin/onetap.page" allow="identity-credentials-get"></iframe>
    

    如果您的应用使用的 iframe 包含其他 iframe,那么您必须 请确保将该属性添加到每个 iframe,包括所有子 iframe。

    例如,请考虑以下情况:

  • 顶部的文档 (https://www.example.uk) 包含一个名为“iframe”的 iframe A”,用于嵌入页面 (https://logins.example.com)。

  • 此嵌入网页 (https://logins.example.com) 还包含 iframe 名为“iframe B”进一步嵌入了页面 (https://onetap.example2.com) 托管一键快捷功能的应用

    为了确保一键正确显示,必须添加该属性 iframe A 和 iframe B 这两个代码

    准备,以便针对系统未显示的一键式提示进行咨询。 来源不同的其他网站可能会嵌入您托管一键快捷功能的网页 。您收到的支持服务工单数量可能会增加 与最终用户或其他网站所有者不显示一键快捷界面有关的问题。虽然 只有网站所有者可以在其网页上进行更新,那么您可以 以减轻影响:

  • 请更新您的开发者文档,在其中说明如何设置 iframe 才能正确调用您的网站您可以在文档中提供此页面的链接。

  • 更新开发者常见问题解答页面(如适用)。

  • 请告知您的支持团队这一即将发生的变化,并针对响应做好准备 。

  • 主动联系受影响的合作伙伴、客户或网站所有者 以便顺利过渡到 FedCM。

7. 将这些指令添加到您的内容安全政策 (CSP) 中。

此步骤是可选的,因为并非所有网站都会选择定义 CSP。

  • 如果您的网站未使用 CSP,则无需进行任何更改。

  • 如果您的 CSP 支持当前的一键采纳功能,并且您未使用 connect-srcframe-srcscript-srcstyle-srcdefault-src 没有更改 所需的资源。

  • 否则,请按照此指南设置您的 CSP。没有适当的 CSP 设置,则 FedCM One Tap 将不会显示在网站上。

8. 撤消 Accelerated Mobile Pages (AMP) 网页对登录的支持。

针对 AMP 的用户登录支持是您的 Web 应用 (GIS) 的可选功能 可能已经实施。如果遇到这种情况

删除对以下内容的任何引用:

  • amp-onetap-google 自定义元素,以及

  • <script async custom-element="amp-onetap-google" src="https://cdn.ampproject.org/v0/amp-onetap-google-0.1.js"></script>
    

    考虑将登录请求从 AMP 重定向到您网站的 HTML 登录 。请注意,相关的 Intermediate Iframe Support API 是 不受影响。

测试和验证迁移

根据上述步骤进行必要的更改后,您可以验证 迁移成功

  1. 确认您的浏览器支持 FedCM,并且您已有 Google 账号会话。

  2. 导航至应用中的“一键式”页面。

  3. 确认已显示一键提示提示,并安全地叠加在 内容。

  4. 确认将正确的凭据返回给端点或回调方法 。

  5. 如果已启用自动登录,请验证取消操作是否正常运行且正确 系统会向您的端点或回调方法返回正确的凭据。

一键冷却期

点击一键快捷图标 会关闭提示并进入冷却期 暂时禁止一键显示提示。在 Chrome 中,如果您 希望在冷却期结束之前再次显示一键快捷提示, 可以点击地址栏中的锁形图标,然后重置冷却状态 点击重置权限按钮。

自动登录静默期

使用 FedCM 测试自动登录一键快捷功能时,时间为 10 分钟 两次自动登录之间的间隔。静默期 重置。您需要等待 10 分钟,或者使用其他 Google 账号 以便再次触发自动登录。

实用资源

Privacy Sandbox 分析工具 (PSAT) 是一款 Chrome 开发者工具扩展程序 提供专门的功能来帮助开发者应对 第三方 Cookie 和采用替代 API。它的工作原理是扫描您的 并提供了建议的更改列表。