PublicKeyCredential: toJSON()-Methode
Baseline 2025Newly 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 Berechtigung 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 Web-Apps JSON.stringify()
verwenden, um ein PublicKeyCredential
zu serialisieren, damit es beim Registrieren oder Authentifizieren eines Benutzers an den vertrauenden Server gesendet werden kann. Sie ist nicht dafür vorgesehen, direkt im Web-App-Code aufgerufen zu werden.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Eine JSON-Typ-Darstellung eines PublicKeyCredential
-Objekts.
Die eingeschlossenen Eigenschaften hängen davon ab, ob die Berechtigung bei der Registrierung durch navigator.credentials.create()
oder bei der Authentifizierung eines Benutzers durch navigator.credentials.get()
zurückgegeben wurde. Die Werte und Typen der enthaltenen Eigenschaften sind dieselben wie bei PublicKeyCredential
, mit der Ausnahme, dass base64url-codierte Zeichenfolgen anstelle von Buffer-Eigenschaften verwendet werden.
Die Objekteigenschaften sind:
id
-
Der Wert, der von
PublicKeyCredential.id
zurückgegeben wird. rawId
-
Eine base64url-codierte Version von
PublicKeyCredential.rawId
. authenticatorAttachment
Optional-
Der Wert, der von
PublicKeyCredential.authenticatorAttachment
zurückgegeben wird. type
-
Der String
"public-key"
. clientExtensionResults
-
Ein Array, das base64url-codierte Versionen der Werte enthält, die von
PublicKeyCredential.getClientExtensionResults()
zurückgegeben werden. response
-
Das Antwort-Objekt hängt davon ab, ob die Berechtigungen nach einer Registrierung oder Authentifizierung zurückgegeben werden.
-
Bei der Registrierung eines neuen Benutzers ist
response
eine JSON-Typ-Darstellung vonAuthenticatorAttestationResponse
, bei der Buffer-Werte base64url codiert wurden. -
Bei der Authentifizierung eines Benutzers wird der zurückgegebene Wert eine JSON-Typ-Darstellung von
AuthenticatorAssertionResponse
sein, bei der Buffer-Werte base64url codiert wurden.
-
Ausnahmen
SecurityError
DOMException
-
Die RP-Domain ist nicht gültig.
Beispiele
Bei der Registrierung eines neuen Benutzers wird ein vertrauender Server Informationen über die erwarteten Berechtigungen an die Web-App liefern. Die Web-App ruft navigator.credentials.create()
mit den empfangenen Informationen (createCredentialOptions
unten) auf, was ein Versprechen zurückgibt, das mit den neuen Berechtigungen (einem PublicKeyCredential
) erfüllt wird.
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
Die Web-App serialisiert dann die zurückgegebene Berechtigung mit JSON.stringify()
(was wiederum toJSON()
aufruft) und sendet sie zurück an den Server.
const registration_url = "https://example.com/registration";
const apiRegOptsResp = await fetch(registration_url, {
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 |