PublicKeyCredential: signalCurrentUserDetails() statische Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die statische Methode signalCurrentUserDetails() des PublicKeyCredential-Interfaces signalisiert dem Authentifikator, dass ein bestimmter Benutzer seinen Benutzernamen und/oder Anzeigenamen auf dem relying party (RP)-Server aktualisiert hat.
Dies ermöglicht es dem Authentifikator, Benutzerkontodaten zu aktualisieren, um sicherzustellen, dass sie mit denen der RP synchron bleiben. Es sollte nur verwendet werden, wenn der aktuelle Benutzer authentifiziert ist – nach dem Einloggen oder wenn er die mit seinen Anmeldeinformationen auf der RP-Webanwendung verbundenen Metadaten ändert.
Syntax
signalCurrentUserDetails(options)
Parameter
options-
Ein Objekt, das die aktualisierten Benutzerinformationen darstellt und die folgenden Eigenschaften enthält:
displayName-
Ein String, der den aktualisierten Benutzer-
displayNamedarstellt. name-
Ein String, der den aktualisierten Benutzer-
namedarstellt. rpId-
Ein String, der die
idder RP darstellt, die das Signal gesendet hat. userId-
Ein base64url-kodierter String, der die
iddes Benutzers darstellt, auf den sich die Anmeldeinformationen beziehen.
Rückgabewert
Ausnahmen
Das Promise wird mit den folgenden Ausnahmen abgelehnt:
SecurityErrorDOMException-
Die RP-Domain ist nicht gültig.
TypeErrorDOMException-
Die
credentialIdist kein gültiger base64url-kodierter String.
Beschreibung
Es ist möglich, dass die in einem Benutzerauthentifikator gespeicherten Informationen zu einem auffindbaren Anmeldedaten (z. B. ein Passkey) nicht mehr mit dem Server übereinstimmen. Dies kann auftreten, wenn der Benutzer seinen Benutzernamen oder Anzeigenamen in der RP-Webanwendung aktualisiert, ohne den Authentifikator zu aktualisieren.
Das nächste Mal, wenn der Benutzer versucht, sich mit einem auffindbaren Anmeldedatum anzumelden, wird ihm das Anmeldedatum immer noch mit dem alten Benutzernamen/Anzeigenamen in der entsprechenden Benutzeroberfläche angezeigt, was zu einer verwirrenden Benutzererfahrung führen kann.
Um dieses Problem zu vermeiden, sollte signalCurrentUserDetails() auf der RP-Webanwendung jedes Mal aufgerufen werden, wenn ein Benutzer seine Kontodaten aktualisiert oder sich anmeldet, um dem Authentifikator mitzuteilen, dass die Benutzerinformationen aktualisiert wurden. Es liegt am Authentifikator, wie er mit diesen Informationen umgeht, aber die Erwartung ist, dass er seine Benutzerinformationen mit dem bereitgestellten Update synchronisiert.
Beispiele
>Signalisieren der aktuellen Benutzerdetails
In diesem Beispiel rufen wir die Methode signalCurrentUserDetail() auf und übergeben die Details eines Anmeldedatums, das der Benutzer gerade auf der RP bearbeitet hat. Infolgedessen sollte der Authentifikator seine eigene Kopie des Anmeldedatums aktualisieren, damit es mit der RP synchron bleibt.
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
}
Für weitere Codebeispiele siehe Halten Sie Passkeys mit Anmeldeinformationen auf Ihrem Server konsistent mit der Signal-API auf developer.chrome.com (2024).
Spezifikationen
| Specification |
|---|
| Web Authentication: An API for accessing Public Key Credentials - Level 3> # dom-publickeycredential-signalcurrentuserdetails> |