PublicKeyCredential: toJSON() Methode
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 das Anmeldeinformation-Objekt 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 der Web-App JSON.stringify()
aufruft, um ein PublicKeyCredential
zu serialisieren, sodass es zum vertrauenden Server gesendet werden kann, wenn ein Benutzer registriert oder authentifiziert wird.
Es ist nicht vorgesehen, dass diese Methode direkt im Code der Web-App aufgerufen wird.
Syntax
toJSON()
Parameter
Keine.
Rückgabewert
Eine JSON-Typ-Darstellung eines PublicKeyCredential
-Objekts.
Die enthaltenen Eigenschaften hängen davon ab, ob das Anmeldeinformation-Objekt durch navigator.credentials.create()
bei der Registrierung oder durch navigator.credentials.get()
bei der Authentifizierung eines Benutzers 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 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 Anmeldeinformationen nach einer Registrierung oder einer Authentifizierung zurückgegeben werden.
-
Bei der Registrierung eines neuen Benutzers wird
response
eine JSON-Typ-Darstellung vonAuthenticatorAttestationResponse
sein, bei der Pufferwerte base64url codiert wurden. -
Bei der Authentifizierung eines Benutzers wird der zurückgegebene Wert eine JSON-Typ-Darstellung der
AuthenticatorAssertionResponse
sein, bei der Pufferwerte base64url codiert wurden.
-
Ausnahmen
SecurityError
DOMException
-
Die RP-Domain ist ungültig.
Beispiele
Bei der Registrierung eines neuen Benutzers liefert ein vertrauender Server der Web-App Informationen über die erwarteten Anmeldeinformationen.
Die Web-App ruft navigator.credentials.create()
mit den empfangenen Informationen (createCredentialOptions
unten) auf, was ein Versprechen zurückgibt, das mit den neuen Anmeldeinformationen (einem PublicKeyCredential
) erfüllt wird.
const newCredentialInfo = await navigator.credentials.create({
createCredentialOptions,
});
Die Web-App serialisiert dann die zurückgegebenen Anmeldeinformationen 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 |