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
mapArrayBuffer = publicKeyCredential.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: "[email protected]", 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
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 |
No |
13 |
No |
70 |
60
Only supports USB U2F tokens.
|
No |
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
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredential/getClientExtensionResults