IdentityCredentialRequestOptions

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

IdentityCredentialRequestOptions 字典表示传递给 CredentialsContainer.get()identity 选项的值所对应的对象。

当在 依赖方 (RP) 网站上调用 get() 时提供了 identity 选项,用户将看到一个 联合身份提供商 (IdP) 列表作为登录选项。一旦用户成功使用其中一个选项登录,get() 调用返回的 Promise 将会返回一个 IdentityCredential 对象。

实例属性

context 可选

一个字符串,用于指定用户使用 FedCM 进行身份验证的上下文。浏览器使用此值来改变其 FedCM UI 中的文本,以便更好地适应上下文。可能的值有:

"continue"

适用于用户选择身份以继续流程的下一页,而该页面需要登录的情况。浏览器将显示类似于以下内容的文本字符串:

继续到 <page-origin> 与 <IdP>

"signin"

适用于用户使用在此来源上已使用过的 IdP 账户进行登录的一般情况。浏览器将显示类似于以下内容的文本字符串:

登录到 <page-origin> 与 <IdP>

"signup"

一种选项,适用于用户使用在此之前未使用过的新 IdP 账户登录此来源的情况。浏览器将显示类似于以下内容的文本字符串:

注册到 <page-origin> 与 <IdP>

"use"

适用于执行其他操作(例如验证付款)的情况。浏览器将显示类似于以下内容的文本字符串:

使用 <page-origin> 与 <IdP>

默认值为 "signin"

mode 可选

一个字符串,用于指定用于登录流程的用户界面模式。可能的值有:

激活

登录流程必须通过用户操作(例如点击按钮)来启动。如果 mode 设置为 active,则 providers 的长度只能是 1,否则 get() promise 将会拒绝。

passive

登录流程可以在没有直接用户交互的情况下启动。这是默认值。

有关这两种模式之间差异的更多信息,请参阅 Active versus passive mode

providers

一个对象数组,指定用户应作为登录选项呈现的 IdP 的详细信息。这些对象可以包含以下属性:

configURL

一个字符串,指定 IdP 的配置文件 URL。有关更多信息,请参阅 Provide a config file

clientId

一个字符串,指定 RP 客户端标识符。此信息由 IdP 在一个独立的、特定于 IdP 的过程中颁发给 RP。

domainHint 可选

一个字符串,提示 RP 感兴趣的账户的域。如果提供,用户代理将仅在他们 domain_hints 数组中显示与域提示值匹配的账户。如果指定了 "any",RP 将显示与至少一个域提示关联的任何账户。

fields 可选

一个字符串数组,指定 RP 希望从 IdP 获取以用于登录过程的用户信息。确切的字符串因 IdP 而异,但通常类似于 "name""email""profile-picture-url"

loginHint 可选

一个字符串,提供关于浏览器应向用户提供的登录账户选项的提示。这在用户已登录且网站要求重新验证身份时非常有用。否则,当用户拥有多个账户且不记得之前用于登录的账户时,重新验证过程可能会令人困惑。loginHint 属性的值可以取自用户的先前登录,并与 IdP 在 IdP 的 账户列表端点 返回的用户信息数组中提供的 login_hints 值进行匹配。

nonce 可选

一个随机字符串,可以包含在其中,以确保响应是专门为此请求发出的,并防止 重放攻击

params 可选

一个自定义对象,用于指定 RP 需要发送给 IdP 的任何其他键值参数。这将因 IdP 而异,并且可能包含例如额外的权限请求,如 admin: truecalendar: "readonly"

规范

规范
Federated Credential Management API
# dictdef-identitycredentialrequestoptions

浏览器兼容性