PublicKeyCredential: isUserVerifyingPlatformAuthenticatorAvailable() static method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The isUserVerifyingPlatformAuthenticatorAvailable()
static method of the PublicKeyCredential
interface returns a Promise
which resolves to true
if a user-verifying platform authenticator is present.
A user-verifying platform authenticator is a kind of multi-factor authenticator that is part of the client device (it is generally not removable) and that involves an action from the user in order to identify them. Common user-verifying platform authenticators include:
- Touch ID or Face ID (macOS and iOS)
- Windows Hello (Windows)
- Device unlock (fingerprint, face, PIN, etc.) on Android
Note:
This method may only be used in top-level contexts and will not be available in an <iframe>
for example.
Syntax
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
Parameters
None.
Return value
A Promise
which resolves to a boolean value indicating whether or a not a user-verifying platform authenticator is available.
Note: In earlier versions of the specification, the boolean also conveyed the consent of the user to disclose such an authenticator existed.
Exceptions
The returned Promise
may be rejected with the following values:
SecurityError
DOMException
-
The RP domain is not valid.
Examples
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);
});
Specifications
Specification |
---|
Web Authentication: An API for accessing Public Key Credentials - Level 3 # dom-publickeycredential-isuserverifyingplatformauthenticatoravailable |