AuthenticatorResponse: clientDataJSON-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die clientDataJSON-Eigenschaft der AuthenticatorResponse-Schnittstelle speichert einen JSON-String in einem ArrayBuffer, der die Client-Daten darstellt, die an navigator.credentials.create() oder navigator.credentials.get() übergeben wurden. Diese Eigenschaft wird nur auf einem der Kindobjekte von AuthenticatorResponse zugegriffen, insbesondere AuthenticatorAttestationResponse oder AuthenticatorAssertionResponse.

Wert

Instanz-Eigenschaften

Nachdem das clientDataJSON-Objekt von einem ArrayBuffer in ein JavaScript-Objekt konvertiert wurde, hat es die folgenden Eigenschaften:

challenge

Die base64url-codierte Version der kryptografischen Herausforderung, die vom Server der vertrauenden Partei gesendet wurde. Der ursprüngliche Wert wird als challenge-Option in CredentialsContainer.get() oder CredentialsContainer.create() übergeben.

crossOrigin Optional

Ein boolean. Wenn auf true gesetzt, bedeutet dies, dass der aufrufende Kontext ein <iframe> ist, das nicht selben Ursprungs ist wie seine übergeordneten Frames.

origin

Der vollständig qualifizierte Ursprung der vertrauenden Partei, der dem Authenticator vom Client/Browser übergeben wurde. Es ist zu erwarten, dass die ID der vertrauenden Partei eine Endung dieses Werts ist.

tokenBinding Optional Veraltet

Ein Objekt, das den Status des Token-Bindungsprotokolls für die Kommunikation mit der vertrauenden Partei beschreibt. Es hat zwei Eigenschaften:

  • status: Ein String, der entweder "supported" ist, was anzeigt, dass der Client die Token-Bindung unterstützt, aber nicht mit der vertrauenden Partei ausgehandelt hat, oder "present", wenn die Token-Bindung bereits verwendet wurde.
  • id: Ein String, der die base64url-Kodierung der Token-Bindungs-ID darstellt, die für die Kommunikation verwendet wurde.

Sollte diese Eigenschaft fehlen, würde dies darauf hindeuten, dass der Client die Token-Bindung nicht unterstützt.

Note: tokenBinding ist seit Level 3 der Spezifikation veraltet, aber das Feld ist reserviert, damit es nicht für einen anderen Zweck wiederverwendet wird.

topOrigin Optional

Enthält den vollständig qualifizierten Top-Level-Ursprung der vertrauenden Partei. Es ist nur gesetzt, wenn crossOrigin true ist.

type

Ein String, der entweder "webauthn.get" ist, wenn ein bestehendes Anmeldeinformationen abgerufen wird, oder "webauthn.create", wenn ein neues Anmeldeinformationen erstellt wird.

Beispiele

js
function arrayBufferToStr(buf) {
  return String.fromCharCode.apply(null, new Uint8Array(buf));
}

// pk is a PublicKeyCredential that is the result of a create() or get() Promise
const clientDataStr = arrayBufferToStr(pk.response.clientDataJSON);
const clientDataObj = JSON.parse(clientDataStr);

console.log(clientDataObj.type); // "webauthn.create" or "webauthn.get"
console.log(clientDataObj.challenge); // base64 encoded String containing the original challenge
console.log(clientDataObj.origin); // the window.origin

Spezifikationen

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-authenticatorresponse-clientdatajson

Browser-Kompatibilität

BCD tables only load in the browser