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

The userHandle read-only property of the AuthenticatorAssertionResponse interface is an ArrayBuffer object which is an opaque identifier for the given user. Such an identifier can be used by the relying party's server to link the user account with its corresponding credentials and other data.

The same value may be found on the id property of the options.user object (used for the creation of the PublicKeyCredential instance).

Note: An AuthenticatorAssertionResponse instance is available on PublicKeyCredential.response after calling navigator.credentials.get().

Note: This property may only be used in top-level contexts and will not be available in an <iframe> for example.


userHandle = authenticatorAssertionResponse.userHandle


An ArrayBuffer object which is an opaque identifier for the current user. This is not human-readable and does not contain any personally identifying information (e.g. username, e-mail, phone number, etc.)


var options = {
  challenge: new Uint8Array(26), // will be another value, provided by the relying party server
  timeout: 60000

navigator.credentials.get({  publicKey: options })
  .then(function (assertionPKCred) {
    var userHandle = assertionPKCred.response.userHandle;

    // Send response and client extensions to the server so that it can
    // go on with the authentication

}).catch(function (err) {


Web Authentication: An API for accessing Public Key Credentials - Level 3 (Web Authentication)
# dom-authenticatorassertionresponse-userhandle

Browser compatibility

BCD tables only load in the browser

See also