IdentityCredential: isAutoSelected 属性

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

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

IdentityCredential 接口的只读属性 isAutoSelected 指示是否使用 自动重新认证(即,无需用户干预)执行了联合登录流程。

当使用 mediation 选项值为 "optional""silent" 调用 navigator.credentials.get() 时,可能会发生自动重新认证。对于 信赖方 (RP) 来说,了解自动重新认证是否发生对于分析/性能评估和用户体验目的很有用——自动登录可能需要与非自动登录不同的 UI 流程。

一个布尔值。true 表示使用了自动重新认证;false 表示未使用。

示例

基本的联合登录和 isAutoSelected 访问

RP 可以使用 identity 选项调用 navigator.credentials.get(),以通过 IdP 请求用户登录 RP,使用身份联合。自动重新认证行为由 get() 调用中的 mediation 选项控制。

js
async function signIn() {
  const identityCredential = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configURL: "https://accounts.idp.example/config.json",
          clientId: "********",
        },
      ],
    },
    mediation: "optional", // this is the default
  });

  // isAutoSelected is true if auto-reauthentication occurred.
  const isAutoSelected = identityCredential.isAutoSelected;
}

一个成功的 identity 选项的 navigator.credentials.get() 调用会 fulfilled 一个 IdentityCredential 实例,该实例可用于访问 isAutoSelected 属性:如果发生了自动重新认证,其值将等于 true

有关此功能的更多详细信息,请查看 联合凭证管理 API (FedCM)。此调用将启动 FedCM 登录流程 中所述的登录流程。

规范

规范
Federated Credential Management API
# dom-identitycredential-isautoselected

浏览器兼容性

另见