PublicKeyCredential
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
* Some parts of this feature may have varying levels of support.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Das PublicKeyCredential-Interface stellt Informationen über ein öffentliches/privates Schlüsselpaar bereit, das eine Anmeldedaten zur Anmeldung bei einem Dienst unter Verwendung eines nicht-phishbaren und datenschutzverletzungsresistenten asymmetrischen Schlüsselpaares anstelle eines Passworts darstellt. Es erbt von Credential und ist Teil der Web Authentication API-Erweiterung zur Credential Management API.
Hinweis: Diese API ist auf Top-Level-Kontexte beschränkt. Die Verwendung innerhalb eines <iframe>-Elements hat keine Wirkung.
Instanz-Eigenschaften
PublicKeyCredential.authenticatorAttachmentSchreibgeschützt-
Ein String, der den Mechanismus angibt, mit dem die WebAuthn-Implementierung zu dem Zeitpunkt an den Authentifikator angeschlossen ist, wenn der zugehörige Aufruf von
navigator.credentials.create()odernavigator.credentials.get()abgeschlossen wird. PublicKeyCredential.idSchreibgeschützt-
Geerbt von
Credentialund überschrieben, um die base64url-Codierung vonPublicKeyCredential.rawIddarzustellen. PublicKeyCredential.rawIdSchreibgeschützt-
Ein
ArrayBuffer, der den global eindeutigen Bezeichner für diesesPublicKeyCredentialenthält. Dieser Bezeichner kann verwendet werden, um Anmeldedaten für zukünftige Aufrufe vonnavigator.credentials.get()nachzuschlagen. PublicKeyCredential.responseSchreibgeschützt-
Eine Instanz eines
AuthenticatorResponse-Objekts. Es ist entweder vom TypAuthenticatorAttestationResponse, wenn dasPublicKeyCredentialdas Ergebnis eines Aufrufs vonnavigator.credentials.create()war, oder vom TypAuthenticatorAssertionResponse, wenn dasPublicKeyCredentialdas Ergebnis eines Aufrufs vonnavigator.credentials.get()war. PublicKeyCredential.typeSchreibgeschützt-
Geerbt von
Credential. Immer aufpublic-keyfürPublicKeyCredential-Instanzen gesetzt.
Statische Methoden
PublicKeyCredential.getClientCapabilities()-
Gibt ein
Promisezurück, das mit einem Objekt aufgelöst wird, das verwendet werden kann, um zu überprüfen, ob bestimmte WebAuthn-Funktionen und Erweiterungen unterstützt werden. -
Gibt ein
Promisezurück, das zutrueaufgelöst wird, wenn bedingte Mediation verfügbar ist. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()-
Gibt ein
Promisezurück, das zutrueaufgelöst wird, wenn ein an die Plattform gebundener Authentifikator in der Lage ist, den Benutzer zu verifizieren. PublicKeyCredential.parseCreationOptionsFromJSON()-
Komfortmethode zur Deserialisierung von vom Server gesendeten Anmelderegistrierungsdaten beim Registrieren eines Benutzers mit Anmeldedaten.
PublicKeyCredential.parseRequestOptionsFromJSON()-
Komfortmethode zur Deserialisierung von vom Server gesendeten Anmeldeanforderungsdaten beim Authentifizieren eines (registrierten) Benutzers.
PublicKeyCredential.signalAllAcceptedCredentials()-
Signalisiert dem Authentifikator alle gültigen Anmelde-IDs, die der Relying Party-Server noch für einen bestimmten Benutzer hat.
PublicKeyCredential.signalCurrentUserDetails()-
Signalisiert dem Authentifikator, dass ein bestimmter Benutzer seinen Benutzernamen und/oder Anzeigenamen aktualisiert hat.
PublicKeyCredential.signalUnknownCredential()-
Signalisiert dem Authentifikator, dass eine Anmelde-ID vom Relying Party-Server nicht erkannt wurde, zum Beispiel weil sie gelöscht wurde.
Instanz-Methoden
PublicKeyCredential.getClientExtensionResults()-
Wenn Erweiterungen angefordert wurden, gibt diese Methode die Ergebnisse der Verarbeitung dieser Erweiterungen zurück.
PublicKeyCredential.toJSON()-
Komfortmethode zur Erstellung einer JSON-String-Darstellung eines
PublicKeyCredentialzur Übermittlung an den Server beim Registrieren eines Benutzers mit Anmeldedaten und Authentifizieren eines registrierten Benutzers.
Beispiele
>Erstellen einer neuen Instanz von PublicKeyCredential
Hier verwenden wir navigator.credentials.create(), um eine neue Anmeldeinformation zu generieren.
const createCredentialOptions = { publicKey: { challenge: new Uint8Array([ 21, 31, 105 /* 29 more random bytes generated by the server */, ]), rp: { name: "Example CORP", id: "login.example.com", }, user: { id: new Uint8Array(16), name: "canand@example.com", displayName: "Carina Anand", }, pubKeyCredParams: [ { type: "public-key", alg: -7, }, ], }, }; navigator.credentials .create(createCredentialOptions) .then((newCredentialInfo) => { const response = newCredentialInfo.response; const clientExtensionsResults = newCredentialInfo.getClientExtensionResults(); }) .catch((err) => { console.error(err); }); Abrufen einer bestehenden Instanz von PublicKeyCredential
Hier holen wir eine existierende Anmeldeinformation von einem Authentifikator ab, indem wir navigator.credentials.get() verwenden.
const requestCredentialOptions = { publicKey: { challenge: new Uint8Array([ /* bytes sent from the server */ ]), }, }; navigator.credentials .get(requestCredentialOptions) .then((credentialInfoAssertion) => { // send assertion response back to the server // to proceed with the control of the credential }) .catch((err) => { console.error(err); }); Spezifikationen
| Specification |
|---|
| Web Authentication: An API for accessing Public Key Credentials - Level 3> # iface-pkcredential> |
Browser-Kompatibilität
Siehe auch
- Das übergeordnete Interface
Credential