PublicKeyCredential.getClientExtensionResults()

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.  getClientExtensionResults() is a method of the PublicKeyCredential interface that returns an ArrayBuffer which contains a map between the extensions identifiers and their results after having being processed by the client.   During the creation or fetching of a PublicKeyCredential (respectively via navigator.credentials.create() and navigator.credentials.get()), it is possible to have "custom" processing by the client for different extensions which are respectively given by PublicKeyCredentialCreationOptions.extensions and PublicKeyCredentialRequestOptions.extensions.    Note: Extensions are optional and different browsers may recognize different extensions. All extensions are optional for the client to process them: if a browser does not know of a given extension, that will not cause any failure.     Note: This method may only be used in top-level contexts and will not be available in an <iframe> for example.  

Syntax
getClientExtensionResults()

Parameters
None.
Return value

 An ArrayBuffer containing the result of the processing of the different extensions by the client. This object contains a map between the extensions' identifiers and their results from the processing.    Warning: As of March 2019, only appId (used during creation with PublicKeyCredentialRequestOptions.extensions) is supported by Chrome and Edge. Firefox does not seem to support any extension.  

Examples
var publicKey = {
  // Here are the extensions (as "inputs")
  extensions: {
    "loc": true, // This extension has been defined to include location information in attestation
    "uvi": true  // user verification index: how the user was verified
  },
  challenge: new Uint8Array(16) /* from the server */,
  rp: {
    name: "Example CORP",
    id  : "login.example.com"
  },
  user: {
    id: new Uint8Array(16) /* from the server */,
    name: "audreyenglish@example.com",
    displayName: "John Doe"
  },
  pubKeyCredParams: [
    {
      type: "public-key",
      alg: -7
    }
  ]
};

navigator.credentials.create({ publicKey })
  .then(function (newCredentialInfo) {
    var myBuffer = newCredentialInfo.getClientExtensionResults();
    // myBuffer will contain the result of any of the processing of the "loc" and "uvi" extensions
  }).catch(function (err) {
     console.error(err);
  });

Specifications

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3 # ref-for-dom-publickeycredential-getclientextensionresults

Browser compatibility




Desktop
Mobile



Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
WebView Android
Chrome Android
Firefox for Android
Opera Android
Safari on IOS
Samsung Internet



getClientExtensionResults
67
18

60
Only supports USB U2F tokens.

No
54
13
No
70

92
60-92
Only supports USB U2F tokens.

49
13
No


See also
 The list of the currently defined extensions  AuthenticatorAssertionResponse.authenticatorData which contains the result of the authenticator's extensions processing   PublicKeyCredentialCreationOptions.extensions which contains the client extensions' input values for the creation of the credential   PublicKeyCredentialRequestOptions.extensions which contains the client extensions' input values for the retrieval of the credential  


Found a problem with this page?

Edit on GitHub
Source on GitHub
Report a problem with this content on GitHub
Want to fix the problem yourself? See our Contribution guide.


Last modified: Apr 20, 2022, by MDN contributors


    
{'path': 'public/docs/dom/publickeycredential/getclientextensionresults.html', 'source': 'DevDocs.IO'}