PublicKeyCredential: toJSON() Methode
Baseline
2025
Newly available
Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die toJSON() Methode des PublicKeyCredential Interfaces gibt eine JSON-Typ Darstellung eines PublicKeyCredential zurück.
Die Eigenschaften des zurückgegebenen Objekts hängen davon ab, ob die Referenz durch navigator.credentials.create() beim Erstellen eines Schlüsselpaares und Registrieren eines Benutzers oder durch navigator.credentials.get() beim Authentifizieren eines Benutzers zurückgegeben wird.
Diese Methode wird automatisch aufgerufen, wenn der Code einer Web-App JSON.stringify() aufruft, um ein PublicKeyCredential zu serialisieren, damit es an den vertrauenden Server gesendet werden kann, wenn ein Benutzer registriert oder authentifiziert wird. Sie ist nicht dafür gedacht, direkt im Code einer Web-App aufgerufen zu werden.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Eine JSON-Typ Darstellung eines PublicKeyCredential Objekts.
Die enthaltenen Eigenschaften hängen davon ab, ob die Referenz bei der Registrierung durch navigator.credentials.create() oder beim Authentifizieren eines Benutzers durch navigator.credentials.get() zurückgegeben wurde. Die Werte und Typen der enthaltenen Eigenschaften sind dieselben wie für PublicKeyCredential, mit der Ausnahme, dass base64url-codierte Strings anstelle von Puffer-Eigenschaften verwendet werden.
Die Objekt-Eigenschaften sind:
id-
Der Wert, der von
PublicKeyCredential.idzurückgegeben wird. rawId-
Eine base64url-codierte Version von
PublicKeyCredential.rawId. authenticatorAttachmentOptional-
Der Wert, der von
PublicKeyCredential.authenticatorAttachmentzurückgegeben wird. type-
Der String
"public-key". clientExtensionResults-
Ein Array, das base64url-codierte Versionen der von
PublicKeyCredential.getClientExtensionResults()zurückgegebenen Werte enthält. response-
Das
responseEigenschaftsobjekt hängt davon ab, ob die Referenzen nach einer Registrierung oder einem Authentifizierungsvorgang zurückgegeben werden.-
Bei der Registrierung eines neuen Benutzers wird
responseeine JSON-Typ Darstellung vonAuthenticatorAttestationResponsesein, bei der Pufferwerte base64url codiert wurden. -
Bei der Authentifizierung eines Benutzers ist der zurückgegebene Wert eine JSON-Typ Darstellung von
AuthenticatorAssertionResponse, bei der Pufferwerte base64url codiert wurden.
-
Ausnahmen
SecurityErrorDOMException-
Die RP-Domain ist nicht gültig.
Beispiele
Bei der Registrierung eines neuen Benutzers stellt ein vertrauender Server Informationen über die erwarteten Referenzen zur Verfügung, die an die Web-App übermittelt werden.
Die Web-App ruft navigator.credentials.create() mit den empfangenen Informationen (createCredentialOptions unten) auf, was ein Versprechen zurückgibt, das mit der neuen Referenz (einem PublicKeyCredential) erfüllt wird.
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
Die Web-App serialisiert anschließend die zurückgegebene Referenz mit JSON.stringify() (was wiederum toJSON() aufruft) und sendet sie zurück an den Server.
const registrationURL = "https://example.com/registration";
const apiRegOptsResp = await fetch(registrationURL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(newCredentialInfo), // Calls newCredentialInfo.toJSON
});
Spezifikationen
| Specification |
|---|
| Web Authentication: An API for accessing Public Key Credentials - Level 3> # dom-publickeycredential-tojson> |