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 in einem der Kindobjekte von AuthenticatorResponse
aufgerufen, insbesondere in AuthenticatorAttestationResponse
oder AuthenticatorAssertionResponse
.
Wert
Ein ArrayBuffer
.
Instanzeigenschaften
Nachdem das clientDataJSON
-Objekt von einem ArrayBuffer
in ein JavaScript-Objekt umgewandelt wurde, wird es die folgenden Eigenschaften haben:
challenge
-
Die base64url-kodierte Version der kryptografischen Herausforderung, die vom Server der vertrauenden Partei gesendet wurde. Der Originalwert wird als
challenge
-Option inCredentialsContainer.get()
oderCredentialsContainer.create()
übergeben. crossOrigin
Optional-
Ein boolescher Wert. Wenn auf
true
gesetzt, bedeutet dies, dass der aufrufende Kontext ein<iframe>
ist, das nicht denselben Ursprung wie seine übergeordneten Frames hat. origin
-
Der vollständig qualifizierte Ursprung der vertrauenden Partei, der vom Client/Browser dem Authentifikator bereitgestellt wurde. Es sollte erwartet werden, dass die ID der vertrauenden Partei ein Suffix dieses Wertes ist.
tokenBinding
Optional Veraltet-
Ein Objekt, das den Status des Token-Binding-Protokolls für die Kommunikation mit der vertrauenden Partei beschreibt. Es hat zwei Eigenschaften:
status
: Ein String, der entweder"supported"
ist und anzeigt, dass der Client Token-Binding unterstützt, jedoch nicht mit der vertrauenden Partei verhandelt hat, oder"present"
, wenn Token-Binding bereits verwendet wurde.id
: Ein String, der die base64url-Kodierung der Token-Binding-ID ist, die für die Kommunikation verwendet wurde.
Sollte diese Eigenschaft fehlen, würde dies darauf hindeuten, dass der Client kein Token-Binding unterstützt.
Hinweis:>
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 Ursprungswert der obersten Ebene der vertrauenden Partei. Er wird nur gesetzt, wenn
crossOrigin
true
ist. type
-
Ein String, der entweder
"webauthn.get"
ist, wenn ein bestehendes Anmeldedaten abgerufen wird, oder"webauthn.create"
, wenn ein neues Anmeldedaten 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 |