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.
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, welches als Anmeldedaten für einen Dienst verwendet wird. Es nutzt ein nicht-phishbares und datenschutzverletzungsresistentes asymmetrisches Schlüsselpaar anstelle eines Passworts. Es erbt von Credential
und ist Teil der Web Authentication API Erweiterung der 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.authenticatorAttachment
Schreibgeschützt-
Ein String, der den Mechanismus angibt, wie die WebAuthn-Implementierung mit dem Authentifikator verbunden ist, zum Zeitpunkt des Abschlusses des zugehörigen Aufrufs von
navigator.credentials.create()
odernavigator.credentials.get()
. PublicKeyCredential.id
Schreibgeschützt-
Übernommen von
Credential
und überschrieben, um die base64url Kodierung vonPublicKeyCredential.rawId
zu sein. PublicKeyCredential.rawId
Schreibgeschützt-
Ein
ArrayBuffer
, der die weltweit eindeutige Kennung für diesesPublicKeyCredential
enthält. Diese Kennung kann verwendet werden, um Anmeldedaten für zukünftige Aufrufe vonnavigator.credentials.get()
zu finden. PublicKeyCredential.response
Schreibgeschützt-
Eine Instanz eines
AuthenticatorResponse
Objekts. Es ist entweder vom TypAuthenticatorAttestationResponse
, wenn dasPublicKeyCredential
das Ergebnis einesnavigator.credentials.create()
Aufrufs war, oder vom TypAuthenticatorAssertionResponse
, wenn dasPublicKeyCredential
das Ergebnis einesnavigator.credentials.get()
Aufrufs war. PublicKeyCredential.type
Schreibgeschützt-
Übernommen von
Credential
. Immer aufpublic-key
fürPublicKeyCredential
Instanzen gesetzt.
Statische Methoden
-
Gibt ein
Promise
zurück, das sich auftrue
auflöst, wenn bedingte Mediation verfügbar ist. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
-
Gibt ein
Promise
zurück, das sich auftrue
auflöst, wenn ein Authenticator, der an die Plattform gebunden ist, in der Lage ist, den Benutzer zu verifizieren. PublicKeyCredential.parseCreationOptionsFromJSON()
-
Komfortmethode zum Deserialisieren von serverseitig gesendeten Anmeldedaten-Registrierungsdaten bei der Registrierung eines Benutzers mit Anmeldedaten.
PublicKeyCredential.parseRequestOptionsFromJSON()
-
Komfortmethode zum Deserialisieren von serverseitig gesendeten Anmeldedatenanforderungsdaten bei der Authentifizierung eines (registrierten) Benutzers.
Instanz-Methoden
PublicKeyCredential.getClientExtensionResults()
-
Wenn Erweiterungen angefordert wurden, gibt diese Methode die Ergebnisse der Verarbeitung dieser Erweiterungen zurück.
PublicKeyCredential.toJSON()
-
Komfortmethode zum Erstellen einer JSON-String-Darstellung eines
PublicKeyCredential
zur Übermittlung an den Server bei der Registrierung eines Benutzers mit Anmeldedaten und der Authentifizierung eines registrierten Benutzers.
Beispiele
Erstellen einer neuen Instanz von PublicKeyCredential
Hier verwenden wir navigator.credentials.create()
, um ein neues Anmeldedaten-Objekt zu erzeugen.
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 rufen wir ein bestehendes Anmeldedaten-Objekt 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
BCD tables only load in the browser
Siehe auch
- Das übergeordnete Interface
Credential