Web/API/PublicKeyCredential/isUserVerifyingPlatformAuthenticatorAvailable

From Get docs

Secure contextThis 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 1The definition of 'isUserVerifyingPlatformAuthenticatorAvailable' in that specification. Recommendation Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
isUserVerifyingPlatformAuthenticatorAvailable

Chrome 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 18

Firefox Full support 60

Notes'

Full support 60

Notes'

Notes' Only supports USB U2F tokens.

IE

No support No

Opera

No support No

Safari

Full support 13

WebView Android

Full support 70

Chrome Android

Full support 70

Firefox Android Full support 60

Notes'

Full support 60

Notes'

Notes' Only supports USB U2F tokens.

Opera Android

No support No

Safari iOS

Full support 13.3

Samsung 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