Web/API/PublicKeyCredential/getClientExtensionResults
Secure contextThis 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
Specification | Status | Comment |
---|---|---|
Web Authentication: An API for accessing Public Key Credentials Level 1The definition of 'getClientExtensionResults()' in that specification. | Recommendation | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
getClientExtensionResults
|
Chrome Full support 67 Full support 67 Full support 65 Notes' Only supports USB U2F tokens.
Disabled' From version 65: this feature is behind the |
Edge
Full support 18 |
Firefox Full support 60 Full support 60 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 Full support 60 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
- The list of the currently defined extensions
AuthenticatorAssertionResponse.authenticatorData
which contains the result of the authenticator's extensions processingPublicKeyCredentialCreationOptions.extensions
which contains the client extensions' input values for the creation of the credentialPublicKeyCredentialRequestOptions.extensions
which contains the client extensions' input values for the retrieval of the credential
PublicKeyCredential.getClientExtensionResults() by Mozilla Contributors is licensed under CC-BY-SA 2.5.