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
signalCurrentUserDetails(options)
Parameter
options-
Ein Objekt mit den aktualisierten Benutzerinformationen, das die folgenden Eigenschaften enthält:
displayName-
Ein String, der den aktualisierten
displayNamedes Benutzers enthält. name-
Ein String, der den aktualisierten
namedes Benutzers enthält. rpId-
Ein String, der die
idder RP enthält, die das Signal gesendet hat. userId-
Ein base64url-kodierter String, der die
iddes Benutzers enthält, zu dem die Anmeldedaten gehören.
Rückgabewert
Ausnahmen
Das Promise wird mit einer der folgenden Ausnahmen zurückgewiesen:
SecurityErrorDOMException-
Die Domain der RP ist ungültig.
TypeError-
credentialIdist 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.
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> |