PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()

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

isUserVerifyingPlatformAuthenticatorAvailable() is a static method of the PublicKeyCredential interface that returns a Promise which resolves to true if a user-verifying platform authenticator is available.

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.

At the time of this writing, this method's result only resolves to true on Windows when Windows Hello capabilities are available (on recent versions of this OS).

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 indicating whether or a not a user-verifying platform authenticator is available. As of today (March 2019), this is basically indicating if Windows Hello may be used with the Web Authentication API and that the user has accepted its use.

Note: This is a static method which is directly called on the PublicKeyCredential interface and not on an instance.

Note: In earlier versions of the specification, the boolean also conveyed the consent of the user to disclose such an authenticator existed.

Examples

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
  .then(function(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(function(err){
    // Something went wrong
    console.error(err);
  });

Specifications

Specification Status Comment
Web Authentication: An API for accessing Public Key Credentials Level 1
The definition of 'isUserVerifyingPlatformAuthenticatorAvailable' in that specification.
Recommendation Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
isUserVerifyingPlatformAuthenticatorAvailableChrome Full support 67
Full support 67
Full support 65
Notes Disabled
Notes Only supports USB U2F tokens.
Disabled From version 65: this feature is behind the Web Authentication API preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.
Edge Full support 18Firefox Full support 60
Notes
Full support 60
Notes
Notes Only supports USB U2F tokens.
IE No support NoOpera No support NoSafari Full support 13WebView Android Full support 70Chrome Android Full support 70Firefox Android Full support 60
Notes
Full support 60
Notes
Notes Only supports USB U2F tokens.
Opera Android No support NoSafari iOS Full support 13.3Samsung Internet Android No support No

Legend

Full support
Full support
No support
No support
See implementation notes.
See implementation notes.
User must explicitly enable this feature.
User must explicitly enable this feature.

See also