PublicKeyCredential: isUserVerifyingPlatformAuthenticatorAvailable() 静态方法

Baseline 已广泛支持

此功能已成熟,并可在多种设备和浏览器版本上运行。自 2021 年 9 月起,所有浏览器均已支持此功能。

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

PublicKeyCredential 接口的 isUserVerifyingPlatformAuthenticatorAvailable() 静态方法会返回一个 Promise,如果存在一个用户验证型平台验证器,该 Promise 将解析为 true

用户验证型平台验证器是一种 多因素身份验证器,它是客户端设备的一部分(通常不可移除),并且需要用户进行操作以识别他们。常见的用户验证型平台验证器包括:

  • Touch ID 或 Face ID(macOS 和 iOS)
  • Windows Hello(Windows)
  • Android 上的设备解锁(指纹、面部、PIN 等)

注意:此方法只能在顶层上下文中使用,例如在 <iframe> 中将不可用。

语法

js
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()

参数

无。

返回值

一个 Promise,它解析为一个布尔值,指示是否存在用户验证型平台验证器。

注意:在规范的早期版本中,布尔值还传达了用户同意披露此类验证器的存在。

异常

返回的 Promise 可能会因以下值而被拒绝

SecurityError DOMException

RP 域无效。

示例

js
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
  .then((available) => {
    if (available) {
      // We can proceed with the creation of a PublicKeyCredential
      // with this authenticator
    } else {
      // Use another kind of authenticator or a classical login/password
      // workflow
    }
  })
  .catch((err) => {
    // Something went wrong
    console.error(err);
  });

规范

规范
Web Authentication:访问公钥凭证的 API - 第 3 级
# dom-publickeycredential-isuserverifyingplatformauthenticatoravailable

浏览器兼容性

另见