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-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

js
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.

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.

js
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.

js
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

Browser-Kompatibilität

Siehe auch