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. crossOriginOptional-
Ein boolescher Wert. Wenn auf
truegesetzt, 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.
tokenBindingOptional 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:>
tokenBindingist seit Level 3 der Spezifikation veraltet, aber das Feld ist reserviert, damit es nicht für einen anderen Zweck wiederverwendet wird. topOriginOptional-
Enthält den vollständig qualifizierten Ursprungswert der obersten Ebene der vertrauenden Partei. Er wird nur gesetzt, wenn
crossOrigintrueist. 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> |
Browser-Kompatibilität
Loading…