本指南可帮助您了解 Web 应用的变更 由 Federated Credentials Management API (FedCM)。
启用 FedCM 后,浏览器会显示用户提示,不显示第三方 Cookie。
概览
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 被植入时,才需要重新确认 受限。这意味着:
回访用户无需重新确认 FedCM 自动登录。 如果用户通过 FedCM 界面重新确认,此次重新确认将计入 后第三方 Cookie 时代的用户手势要求。
FedCM 自动登录将在 目前或默认情况下, Chrome 的未来。
实施这项更改后,我们建议所有自动登录开发者改用 FedCM ,以减少对自动登录转化率的干扰。
对于自动登录流程,GIS JavaScript 不会在旧版上触发 FedCM Chrome(在 M121 之前),即使您的网站选择启用 FedCM。
用户体验历程差异
使用 FedCM 和不使用 FedCM 的一键式体验只有 细微差异。
单次会话新用户
通过使用 FedCM,One Tap 会显示域名而不是应用名称。
使用 FedCM | 不借助 FedCM |
---|---|
|
|
单次会话回访用户(已停用自动登录)
通过使用 FedCM,One Tap 会显示域名而不是应用名称。
使用 FedCM | 不借助 FedCM |
---|---|
|
|
单次会话回访用户(在启用自动登录的情况下)
使用 FedCM,用户可以在 5 天内点击 X 取消自动登录 秒,而不是点击 Cancel 按钮。
使用 FedCM | 不借助 FedCM |
---|---|
|
|
多会话
通过使用 FedCM,One Tap 会显示域名而不是应用名称。
使用 FedCM | 不借助 FedCM |
---|---|
|
|
准备工作
检查您的浏览器设置和版本是否支持 FedCM API。 建议更新到最新版本。
FedCM API 在 Chrome 117 或更高版本中提供。
Chrome 中的第三方登录设置处于启用状态。
如果您的 Chrome 浏览器版本为 119 或更低版本,请打开
chrome://flags
,然后 启用实验性FedCmWithoutThirdPartyCookies
功能。此步骤 Chrome 浏览器 120 或更高版本不需要此设置。
迁移您的 Web 应用
请按照以下步骤启用 FedCM,评估潜在的迁移影响,并 根据需要更改现有 Web 应用:
1. 添加布尔标志,以便在使用以下命令初始化时启用 FedCM:
请将
data-use_fedcm_for_prompt
属性设置为true
。在 JavaScript 代码中,将
use_fedcm_for_prompt
设置为true
,在IdConfiguration
对象。
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_id
和 intermediate_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.com
和https://example2.com
- 不同的顶级域名:
https://example.uk
和https://example.jp
子网域:
https://example.com
和https://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-src
,frame-src
、script-src
、style-src
或default-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
是 不受影响。
测试和验证迁移
根据上述步骤进行必要的更改后,您可以验证 迁移成功
确认您的浏览器支持 FedCM,并且您已有 Google 账号会话。
导航至应用中的“一键式”页面。
确认已显示一键提示提示,并安全地叠加在 内容。
确认将正确的凭据返回给端点或回调方法 。
如果已启用自动登录,请验证取消操作是否正常运行且正确 系统会向您的端点或回调方法返回正确的凭据。
一键冷却期
点击一键快捷图标
会关闭提示并进入冷却期 暂时禁止一键显示提示。在 Chrome 中,如果您 希望在冷却期结束之前再次显示一键快捷提示, 可以点击地址栏中的锁形图标,然后重置冷却状态 点击重置权限按钮。自动登录静默期
使用 FedCM 测试自动登录一键快捷功能时,时间为 10 分钟 两次自动登录之间的间隔。静默期 重置。您需要等待 10 分钟,或者使用其他 Google 账号 以便再次触发自动登录。
实用资源
Privacy Sandbox 分析工具 (PSAT) 是一款 Chrome 开发者工具扩展程序 来协助采用 FedCM 等替代 API。它的工作原理 扫描您的网站是否包含受影响的功能,并提供一系列建议 更改。