PublicKeyCredential: parseCreationOptionsFromJSON() statische Methode
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die statische Methode parseCreationOptionsFromJSON()
des PublicKeyCredential
-Interfaces erstellt ein PublicKeyCredentialCreationOptions
-Objekt aus einer JSON-Darstellung seiner Eigenschaften.
Die Methode ist eine Komfortfunktion, um Berechtigungsoptionsinformationen, die von einem Server für die vertrauende Partei bereitgestellt werden, in eine Form zu konvertieren, die eine Webanwendung verwenden kann, um eine Berechtigung zu erstellen.
Syntax
PublicKeyCredential.parseCreationOptionsFromJSON(options)
Parameter
options
-
Ein Objekt mit derselben Struktur wie ein
PublicKeyCredentialCreationOptions
, jedoch mit base64url-kodierten Zeichenfolgen anstelle von Puffer-Eigenschaften.
Rückgabewert
Ein PublicKeyCredentialCreationOptions
-Objekt.
Ausnahmen
EncodingError
DOMException
-
Wird ausgelöst, wenn das
options
-Objekt nicht in einPublicKeyCredentialCreationOptions
-Objekt konvertiert werden kann.
Beschreibung
Der Web-Authentifizierungsprozess zum Erstellen eines Schlüsselpaares und Registrieren eines Benutzers beinhaltet, dass ein Server für die vertrauende Partei der Webanwendung die notwendige Information zur Erstellung einer Berechtigung sendet, einschließlich Details über die Benutzeridentität, die vertrauende Partei und eine "Herausforderung".
Die Webanwendung übergibt diese Informationen an einen Authentifikator, um die Berechtigung zu erstellen, indem sie navigator.credentials.create()
mit einem PublicKeyCredentialCreationOptions
-Objekt als Argument aufruft.
Die Spezifikation definiert nicht, wie die Informationen, die für die Erstellung einer Berechtigung benötigt werden, gesendet werden sollen.
Ein praktischer Ansatz ist, dass der Server die Informationen in einer JSON-Typ-Darstellung des PublicKeyCredentialCreationOptions
-Objekts kapselt, das seine Struktur widerspiegelt, aber Puffer-Eigenschaften wie die challenge
und user.id
als base64url-Zeichenfolgen kodiert.
Dieses Objekt kann in eine JSON-Zeichenfolge serialisiert, an die Webanwendung gesendet und deserialisiert werden und dann mit parseCreationOptionsFromJSON()
in ein PublicKeyCredentialCreationOptions
-Objekt konvertiert werden.
Beispiele
Beim Registrieren eines neuen Benutzers wird ein Server für die vertrauende Partei Informationen zu den erwarteten Berechtigungen an die Webanwendung liefern.
Der untenstehende Code definiert diese Informationen in der im Parameter options
beschriebenen Form (entnommen aus dem "Abrufen einer AuthenticatorAttestationResponse" in AuthenticatorResponse
):
const createCredentialOptionsJSON = {
challenge:
"21, 31, 105, " /* 29 more random bytes generated by the server in this string */,
rp: {
name: "Example CORP",
id: "login.example.com",
},
user: {
id: "16",
name: "canand@example.com",
displayName: "Carina Anand",
},
pubKeyCredParams: [
{
type: "public-key",
alg: -7,
},
],
};
Da dieses Objekt nur JSON-Datentypen verwendet, kann es mit JSON.stringify()
in JSON serialisiert und an die Webanwendung gesendet werden.
JSON.stringify(createCredentialOptionsJSON);
Die Webanwendung kann die JSON-Zeichenfolge zurück in ein createCredentialOptionsJSON
-Objekt deserialisieren (nicht gezeigt).
Die Methode parseCreationOptionsFromJSON()
wird verwendet, um dieses Objekt in die Form zu konvertieren, die in navigator.credentials.create()
verwendet werden kann:
// Convert options to form used by create()
const createCredentialOptions =
PublicKeyCredential.parseCreationOptionsFromJSON(
createCredentialOptionsJSON, // JSON-type representation
);
navigator.credentials
.create({ publicKey: createCredentialOptions })
.then((newCredentialInfo) => {
// Handle the new credential information here.
})
.catch((err) => {
console.error(err);
});
Spezifikationen
Specification |
---|
Web Authentication: An API for accessing Public Key Credentials - Level 3 # dom-publickeycredential-parsecreationoptionsfromjson |
Browser-Kompatibilität
BCD tables only load in the browser