PublicKeyCredential: isConditionalMediationAvailable() static method

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The isConditionalMediationAvailable() static method of the PublicKeyCredential interface returns a Promise which resolves to true if conditional mediation is available.

Syntax

js
PublicKeyCredential.isConditionalMediationAvailable()

Parameters

None.

Return value

A Promise which resolves to a boolean value indicating whether or not conditional mediation is available.

Examples

Before invoking a conditional WebAuthn API call, check if:

  • The browser supports the Web Authentication API.
  • The browser supports WebAuthn conditional 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: ****,
      // 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",
    });
  }
}

Note: See Sign in with a passkey through form autofill for more information about using conditional mediation.

Specifications

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-publickeycredential-isconditionalmediationavailable

Browser compatibility

BCD tables only load in the browser