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
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.
// 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
Loading…