PublicKeyCredential: isConditionalMediationAvailable() 静态方法

Baseline 2023
新推出

自 ⁨2023 年 10 月⁩ 以来,此功能已在最新设备和浏览器版本中得到支持。此功能可能无法在旧设备或浏览器上运行。

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

PublicKeyCredential 接口的 isConditionalMediationAvailable() 静态方法返回一个 Promise,如果 条件中介 可用,则该 Promise 解析为 true

语法

js
PublicKeyCredential.isConditionalMediationAvailable()

参数

无。

返回值

一个 Promise,解析为一个布尔值,指示是否可用条件中介。

异常

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

SecurityError DOMException

RP 域无效。

示例

在调用条件 WebAuthn API 调用之前,请检查:

  • 浏览器是否支持 Web Authentication API。
  • 浏览器是否支持 WebAuthn 条件 UI。
js
// Availability of `window.PublicKeyCredential` means WebAuthn is usable.
if (
  window.PublicKeyCredential &&
  PublicKeyCredential.isConditionalMediationAvailable
) {
  // Check if conditional mediation is available.
  const isCMA = await PublicKeyCredential.isConditionalMediationAvailable();
  if (isCMA) {
    // Call WebAuthn authentication
    const publicKeyCredentialRequestOptions = {
      // Server generated challenge
      challenge: challengeFromServer,
      // The same RP ID as used during registration
      rpId: "example.com",
    };

    const credential = await navigator.credentials.get({
      publicKey: publicKeyCredentialRequestOptions,
      signal: abortController.signal,
      // Specify 'conditional' to activate conditional UI
      mediation: "conditional",
    });
  }
}

注意: 有关使用条件中介的更多信息,请参阅 通过表单自动填充使用通行证密钥登录

规范

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

浏览器兼容性