从 Chrome 128 开始,Multi-IdP API 将在桌面设备上开始源试用,Button Mode API 和 Continuation 软件包将开始在桌面设备上的源试用。借助多 IdP 功能,开发者可以在单个 get()
调用中指定多个受支持的身份提供程序的数组。Button Mode API 添加了新界面。借助 Button Mode API,身份提供程序即使在用户在调用 API 时没有有效的 IdP 会话,也能使用 FedCM API。接续包由 Continuation API 和 Parameters API 组成,它们提供了类似于 OAuth 授权流程的体验,涉及 IdP 提供的权限对话框。该软件包还包含其他更改,例如 fields API、多个 configURL
和自定义账号标签。
源试用:Multi IdP API
借助该功能,用户可以从一组受支持的 IdP 中选择一个账号,而 RP 可因更高的登录和注册率而受益。如果用户使用多个 IdP 登录,系统会提示他们使用其中一个 IdP 登录 RP。
系统会根据用户的现有账号及其关联的时间戳来确定 IdP 的优先级。
- 如果用户之前已使用特定 IdP(即,他们拥有“回访账号”)登录 RP,则系统会首先列出这些 IdP。
- 在回访账号中,系统会按 IdP 的最近使用时间对 IdP 进行进一步排序,最近使用的 IdP 会显示在列表顶部。在某些情况下,Chrome 可能没有回访账号的时间戳数据。这可能是因为用户在 FedCM 中实现时间戳日志之前登录。这些账号会列在带有时间戳的账号下方。
- 如果用户没有任何 IdP 的回访账号,则会遵循 RP 提供的顺序。
FedCM 在开发者要求自动重新验证,且账号只有一个退货账号的情况下允许自动重新验证。对于多 IdP 配置,如果多个 IdP 存在返回账号,系统不会自动重新对用户进行身份验证。自动重新验证身份需要有回访账号。浏览器只有在明确识别出账号的情况下才会启动自动重新身份验证。这意味着,用户必须之前在此 RP 上使用过此特定账号的 FedCM。
如果用户针对某个 IdP 将登录状态设为“已退出”,则调用 FedCM 不会提取该 IdP 的账号。同样,如果用户的所有可用 IdP 的状态均为“已退出”,系统不会在微件模式下自动显示 FedCM 登录提示。
如果浏览器中为某个 IdP 保存的登录状态为“已登录”,但提取请求未返回任何此 IdP 的账号(例如,如果用户会话已过期,但浏览器尚未更新登录状态),系统会针对该 IdP 显示不匹配的界面,提示用户使用不匹配的 IdP 登录。
如需详细了解登录状态,请参阅文档。如需了解更多实现详情,请参阅开发者指南。
来源试用:Multi IdP API
您可以作为用户在演示版 RP 上试用 Multi IdP API,也可以作为开发者使用 Chrome 128 或更高版本试用该 API。
以用户身份试用
请以用户的身份亲自试用一下。请确保:
- Chrome 未配置为屏蔽网页
chrome://settings/content/federatedIdentityApi
上的第三方登录提示。 - 您已登录多个演示 IdP。按照演示页面上的说明操作。
请注意,如果要针对未注册源站试用计划的网站试用多身份提供方,您需要在 chrome://flags/#fedcm-multi-idp
下启用功能标志。
以开发者身份试用
如果登录提供方在 RP 中嵌入了 JavaScript SDK(推荐),则该提供商可以实现用于启用多个 IdP 的 navigator.credentials.get()
调用,并且 RP 开发者无需更改其代码。否则,RP 需要自行调用 FedCM API。
如需在 RP 上测试多个 IdP,请按如下方式指定一组受支持的提供商:
try {
const cred = await navigator.credentials.get({
identity: {
providers: [
{
configUrl: "https://idp1.example/foo.json", // first IdP
clientId: "123",
},
{
configUrl: "https://idp2.example/bar.json", // second IdP
clientId: "456",
}
]
}
});
const token = cred.token;
const currentConfigFileUrl = cred.configURL;
if (cred.configURL === 'https://idp1.example/foo.json') {
// handle the token for idp1.example
} else if (cred.configURL === 'https://idp2.example/bar.json') {
// handle the token for idp2.example
}
} catch (error) {
console.error("Error during credential retrieval:", error);
}
生成的对象中的 configURL
属性会存储用户进行身份验证所用的 IdP 的配置文件的网址。RP 可以确定如何处理生成的 token
,因为它因 IdP 而异。
参与源试用
通过源试用,您可以试用新功能,并就其易用性、实用性和有效性提供反馈。如需了解详情,请参阅开始试用。
从 Chrome 128 开始,您可以注册参与源代码试用,以便试用多 IdP 功能。
如需试用多 IdP,RP 可以注册其源并运行第一方源试用。IdP 还可以注册第三方来源试用版,并为使用 JavaScript SDK 的所有 RP 提供多 IdP 功能。
参与源试用的步骤:
- 前往 Multi IdP API 源试用的注册页面。
- 点击注册按钮,然后填写表单以请求令牌。
- 若要注册参与第一方源试用,请在“网站来源”字段中输入 RP 的来源。如要进行第三方源试用,请输入 IdP 的 JavaScript SDK 的来源,然后勾选“第三方匹配”复选框。
- 点击提交。
- 在 RP 页面上提供已签发的令牌:
- 对于第一方来源试用计划参与者:
- 作为
<head>
中的元标记:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- 作为 HTTP 标头:
Origin-Trial: TOKEN_GOES_HERE
- 作为
- 对于第三方源试用参与者:
- 以编程方式提供令牌。
- 对于第一方来源试用计划参与者:
Android 版 Chrome 的 Button Mode API
继桌面版试用之后,从 Chrome 128 版开始,Android 版 Chrome 将开始 Button Mode API 的源试用。借助 Button Mode API,身份提供程序即使在用户在 API 调用后从 IdP 中退出登录,也能使用 FedCM API。登录流程由用户手势启动,这能更好地反映用户的意图。
Chrome 128 中引入了一项新功能,可让 IdP 直接在客户端元数据端点响应中添加 RP 的官方徽标图标。这改进了移动设备上按钮模式的界面。
与配置文件中的 IdP 品牌信息类似,RP 的图标可以在 IdP 端配置,并在 client_metadata_endpoint
响应中返回,如下所示:
"privacy_policy_url": "https://rp.example/privacy_policy.html",
"terms_of_service_url": "https://rp.example/terms_of_service.html",
"icons": [{
"url": "https://idp.example/rp-icon.ico",
"size": 40
}]
如需详细了解图标支持,请参阅开发者文档。
如果用户尚未登录,FedCM 会提示用户使用 IdP 通过 Chrome 自定义标签 (CCT) 提供的 login_url
登录 IdP。
如果用户使用回访账号重新进行身份验证,则不会显示披露界面。
如需注册参加源试用,请参阅桌面设备上的 Button Mode API 的说明。如果您已经在桌面设备上注册了源试用,那么从 Chrome 128 开始,Android 版 Chrome 将自动为您提供此功能。
Android 版 Chrome 的 Continuation API 软件包
继在桌面设备上进行初始试用后,从 Chrome 128 开始,Continuation API bundle 将作为源试用一部分提供给 Android 版 Chrome。该软件包包含多项 FedCM 功能,包括 Continuation API、Parameters API、Fields API、多个 config网址s 和自定义账号标签。
Continuation API 支持多步骤登录流程。Parameters API 允许向 IdP 传递其他参数。借助 Fields API,RP 可以在 FedCM 对话框中请求特定的账号属性,以用于披露界面。此外,多个 configURL
支持一个 IdP 的多个配置文件,自定义账号标签允许 IdP 为账号添加注释,以便 RP 可以按这些标签对其进行过滤。
如需详细了解 Continuation API 软件包,请参阅桌面版 Continuation API 软件包一文。如需注册源代码试用版,请按照这些说明操作。如果您已在桌面设备上报名参加源试用,那么自 Chrome 128 起,Android 版 Chrome 将自动为您提供这些功能。
互动和分享反馈
如果您有反馈意见或遇到任何问题,可以提交问题。我们会及时更新规范的 FedCM 开发者指南,以及汇总的更新日志页面。