PublicKeyCredential: isConditionalMediationAvailable() static method

Baseline 2023
Newly available

Since ⁨October 2023⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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.

Exceptions

The returned Promise may be rejected with the following values:

SecurityError DOMException

The RP domain is not valid.

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: 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", }); } } 

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