Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

PublicKeyCredential: Methode toJSON()

Baseline 2025
Neu verfügbar

Seit März 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die Methode toJSON() der Schnittstelle PublicKeyCredential gibt ein JSON-serialisierbares einfaches Objekt zurück, das das PublicKeyCredential-Objekt repräsentiert.

Die Methode wird bei der JSON-Serialisierung automatisch von JSON.stringify() aufgerufen, wenn ein PublicKeyCredential-Objekt angetroffen wird.

Syntax

js
toJSON()

Parameter

Keine.

Rückgabewert

Ein JSON-serialisierbares einfaches Objekt mit den folgenden Eigenschaften:

Sofern nicht anders angegeben, wird der Wert jeder Eigenschaft unverändert übernommen.

Ausnahmen

SecurityError DOMException

Die RP-Domain ist ungültig.

Beispiele

toJSON() direkt aufrufen

Bei der Registrierung eines neuen Benutzers stellt der Server der Relying Party der Web-App Informationen über die erwarteten Anmeldedaten bereit. Die Web-App ruft navigator.credentials.create() mit den empfangenen Informationen (createCredentialOptions unten) auf. Die Methode gibt ein Promise zurück, das mit den neuen Anmeldedaten (einem PublicKeyCredential) erfüllt wird.

Ein direkter Aufruf von toJSON() gibt ein einfaches Objekt zurück. Dessen Eigenschaften haben dieselben Werte wie die entsprechenden Eigenschaften des ursprünglichen Objekts.

js
const credential = await navigator.credentials.create({
  publicKey: createCredentialOptions,
});

const json = credential.toJSON();
console.log(json); // A plain object
console.log(typeof json); // "object"
console.log(json.id); // Same value as credential.id

Als JSON-Zeichenfolge serialisieren

Die zurückgegebenen Anmeldedaten werden mit JSON.stringify() serialisiert, wodurch die Methode toJSON() automatisch aufgerufen wird. Die Web-App sendet die serialisierten Anmeldedaten zurück an den Server.

js
const jsonString = JSON.stringify(credential);
console.log(jsonString);

const registrationURL = "https://example.com/registration";
const apiRegOptsResp = await fetch(registrationURL, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: jsonString,
});

Dadurch würde eine JSON-Zeichenfolge wie die folgende protokolliert (zur besseren Lesbarkeit formatiert):

json
{
  "authenticatorAttachment": "platform",
  "clientExtensionResults": {},
  "id": "...",
  "rawId": "...",
  "response": {
    "attestationObject": "...",
    "authenticatorData": "...",
    "clientDataJSON": "...",
    "publicKey": "...",
    "publicKeyAlgorithm": -7,
    "transports": ["internal"]
  },
  "type": "public-key"
}

Die base64url-codierten Werte sind zur besseren Lesbarkeit als "..." abgekürzt.

Spezifikationen

Spezifikation
Web Authentication: An API for accessing Public Key Credentials - Level 4
# dom-publickeycredential-tojson

Browser-Kompatibilität

Siehe auch