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-Repräsentation 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-App-Code JSON.stringify()
aufruft, um ein PublicKeyCredential
zu serialisieren, damit es an den Server der vertrauenden Partei gesendet werden kann, wenn ein Benutzer registriert oder authentifiziert wird. Sie ist nicht dazu gedacht, direkt im Web-App-Code aufgerufen zu werden.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Eine JSON-Typ-Repräsentation eines PublicKeyCredential
-Objekts.
Die enthaltenen Eigenschaften hängen davon ab, ob die Berechtigung bei der Registrierung von navigator.credentials.create()
oder beim Authentifizieren eines Benutzers von navigator.credentials.get()
zurückgegeben wurde. Die Werte und Typen der enthaltenen Eigenschaften sind dieselben wie bei PublicKeyCredential
, mit der Ausnahme, dass base64url-kodierte Zeichenfolgen anstelle von Puffer-Eigenschaften verwendet werden.
Die Objekt-Eigenschaften sind:
id
-
Der von
PublicKeyCredential.id
zurückgegebene Wert. rawId
-
Eine base64url-kodierte Version von
PublicKeyCredential.rawId
. authenticatorAttachment
Optional-
Der von
PublicKeyCredential.authenticatorAttachment
zurückgegebene Wert. type
-
Der String
"public-key"
. clientExtensionResults
-
Ein Array, das base64url-kodierte Versionen der von
PublicKeyCredential.getClientExtensionResults()
zurückgegebenen Werte enthält. response
-
Das Antwortobjekt hängt davon ab, ob die Berechtigungen nach einem Registrierungs- oder Authentifizierungsvorgang zurückgegeben werden.
-
Bei der Registrierung eines neuen Benutzers wird
response
eine JSON-Typ-Repräsentation vonAuthenticatorAttestationResponse
sein, bei der Pufferwerte base64url kodiert wurden. -
Bei der Authentifizierung eines Benutzers wird der zurückgegebene Wert eine JSON-Typ-Repräsentation von
AuthenticatorAssertionResponse
sein, bei der Pufferwerte base64url kodiert wurden.
-
Ausnahmen
SecurityError
DOMException
-
Die RP-Domain ist ungültig.
Beispiele
Beim Registrieren eines neuen Benutzers wird ein Server der vertrauenden Partei der Web-App Informationen zu den erwarteten Anmeldeinformationen bereitstellen. Die Web-App ruft navigator.credentials.create()
mit den empfangenen Informationen (createCredentialOptions
unten) auf, was ein Versprechen zurückgibt, das sich mit der neuen Berechtigung (einem PublicKeyCredential
) erfüllt.
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
Die Web-App serialisiert dann die zurückgegebene Berechtigung mithilfe von JSON.stringify()
(welches 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 |