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: Statische Methode signalCurrentUserDetails()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

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

Die statische Methode signalCurrentUserDetails() der Schnittstelle PublicKeyCredential signalisiert dem Authenticator, dass ein bestimmter Benutzer seinen Benutzernamen und/oder Anzeigenamen auf dem Server der Relying Party (RP) aktualisiert hat.

Dadurch kann der Authenticator die Benutzerkontodaten aktualisieren, damit sie mit den bei der RP gespeicherten Daten übereinstimmen. Die Methode sollte nur verwendet werden, wenn der aktuelle Benutzer authentifiziert ist – nach der Anmeldung oder wenn er die Metadaten seiner Anmeldedaten in der Webanwendung der RP ändert.

Syntax

js
signalCurrentUserDetails(options)

Parameter

options

Ein Objekt mit den aktualisierten Benutzerinformationen, das die folgenden Eigenschaften enthält:

displayName

Ein String, der den aktualisierten displayName des Benutzers enthält.

name

Ein String, der den aktualisierten name des Benutzers enthält.

rpId

Ein String, der die id der RP enthält, die das Signal gesendet hat.

userId

Ein base64url-kodierter String, der die id des Benutzers enthält, zu dem die Anmeldedaten gehören.

Rückgabewert

Ein Promise, das mit undefined erfüllt wird.

Ausnahmen

Das Promise wird mit einer der folgenden Ausnahmen zurückgewiesen:

SecurityError DOMException

Die Domain der RP ist ungültig.

TypeError

credentialId ist kein gültiger base64url-kodierter String.

Beschreibung

Die Informationen, die im Authenticator eines Benutzers über eine auffindbare Anmeldeinformation (beispielsweise einen Passkey) gespeichert sind, können vom Stand auf dem Server abweichen. Das kann passieren, wenn der Benutzer seinen Benutzernamen oder Anzeigenamen in der Webanwendung der RP aktualisiert, ohne den Authenticator zu aktualisieren.

Wenn sich der Benutzer das nächste Mal mit einer auffindbaren Anmeldeinformation anmelden möchte, wird sie ihm in der entsprechenden Benutzeroberfläche weiterhin mit dem alten Benutzernamen oder Anzeigenamen angezeigt. Das kann verwirrend sein.

Um dies zu vermeiden, sollte signalCurrentUserDetails() in der Webanwendung der RP jedes Mal aufgerufen werden, wenn ein Benutzer seine Benutzerkontodaten aktualisiert oder sich anmeldet. So wird dem Authenticator mitgeteilt, dass die Benutzerinformationen aktualisiert wurden. Wie der Authenticator diese Informationen verarbeitet, bleibt ihm überlassen. Es wird jedoch erwartet, dass er seine Benutzerinformationen mit den übermittelten Änderungen synchronisiert.

Beispiele

Aktuelle Benutzerdaten signalisieren

In diesem Beispiel rufen wir die Methode signalCurrentUserDetail() auf und übergeben ihr die Details einer Anmeldeinformation, die der Benutzer gerade bei der RP bearbeitet hat. Daraufhin sollte der Authenticator seine eigene Kopie der Anmeldeinformation aktualisieren, damit sie mit den Daten der RP übereinstimmt.

js
if (PublicKeyCredential.signalCurrentUserDetails) {
  await PublicKeyCredential.signalCurrentUserDetails({
    rpId: "example.com",
    userId: "M2YPl-KGnA8", // base64url-encoded user ID
    name: "a.new.email.address@example.com", // username
    displayName: "Maria Sanchez",
  });
} else {
  // Encourage the user to update their details in the authenticator
}

Weitere Codebeispiele finden Sie unter Passkeys mit den Anmeldedaten auf Ihrem Server mithilfe der Signal API synchron halten auf developer.chrome.com (2024).

Spezifikationen

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

Browser-Kompatibilität

Siehe auch