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 des AuthenticatorResponse
-Interfaces speichert einen JSON-String in einem ArrayBuffer
, der die Kundendaten darstellt, die an navigator.credentials.create()
oder navigator.credentials.get()
übergeben wurden. Diese Eigenschaft wird nur auf einem der Kindobjekte von AuthenticatorResponse
zugegriffen, speziell AuthenticatorAttestationResponse
oder AuthenticatorAssertionResponse
.
Wert
Ein ArrayBuffer
.
Instanzeigenschaften
Nachdem das clientDataJSON
-Objekt von einem
ArrayBuffer
in ein JavaScript-Objekt umgewandelt wurde, wird es folgende Eigenschaften haben:
challenge
-
Die base64url-kodierte Version der kryptografischen Herausforderung, die vom Server der vertrauenden Partei gesendet wurde. Der ursprüngliche Wert wird als
challenge
-Option inCredentialsContainer.get()
oderCredentialsContainer.create()
übergeben. crossOrigin
Optional-
Ein boolescher Wert. Wenn auf
true
gesetzt, bedeutet es, dass der aufrufende Kontext ein<iframe>
ist, das nicht dieselbe Herkunft wie seine Vorfahren-Frames hat. origin
-
Die vollständig qualifizierte Herkunft der vertrauenden Partei, die vom Client/Browser an den Authenticator übergeben wurde. Wir sollten erwarten, dass die ID der vertrauenden Partei ein Suffix 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 Token-Bindung unterstützt, aber keine Aushandlung mit der vertrauenden Partei stattfand, oder"present"
, wenn Token-Bindung bereits verwendet wurde.id
: Ein String, der die base64url-Kodierung der Token-Bindungs-ID ist, die für die Kommunikation verwendet wurde.
Fehlt diese Eigenschaft, so würde dies anzeigen, dass der Client keine Token-Bindung 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-
Beinhaltet die vollständig qualifizierte Top-Level-Herkunft der vertrauenden Partei. Es wird nur gesetzt, wenn
crossOrigin
true
ist. type
-
Ein String, der entweder
"webauthn.get"
ist, wenn ein bestehender Berechtigungsnachweis abgerufen wird, oder"webauthn.create"
, wenn ein neuer Berechtigungsnachweis erstellt wird.
Beispiele
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