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
Ein ArrayBuffer
.
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 inCredentialsContainer.get()
oderCredentialsContainer.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
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