IdentityProvider: getUserInfo() statische Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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

Die getUserInfo() statische Methode der IdentityProvider-Schnittstelle gibt Informationen über einen angemeldeten Benutzer zurück, die verwendet werden können, um eine persönliche Willkommensnachricht und Anmelde-Schaltfläche bereitzustellen. Diese Methode muss innerhalb eines Ursprungs-Iframe des Identitätsanbieters (IdP) aufgerufen werden, damit RP-Skripte nicht auf die Daten zugreifen können. Dies muss erfolgen, nachdem sich ein Benutzer bei einer drittparteiabhängigen (RP)-Site angemeldet hat.

Dieses Muster ist bereits auf Websites üblich, die Identitätsföderation für die Anmeldung nutzen, aber getUserInfo() bietet eine Möglichkeit, dies zu erreichen, ohne auf Drittanbieter-Cookies angewiesen zu sein.

Nutzungshinweise

Wenn getUserInfo() aufgerufen wird, sendet der Browser eine Anfrage an den IdP Kontenlisten-Endpunkt für die Benutzerinformationen nur dann, wenn beide der folgenden Bedingungen erfüllt sind:

  • Der Benutzer hat sich zuvor mit dem IdP über FedCM in derselben Browserinstanz bei der RP angemeldet, und die Daten wurden nicht gelöscht.
  • Der Benutzer ist mit derselben Browserinstanz beim IdP angemeldet.

getUserInfo() muss innerhalb eines eingebetteten <iframe> aufgerufen werden, und der Ursprung der eingebetteten Site muss mit der configURL des IdP übereinstimmen. Zusätzlich muss das einbettende HTML seine Nutzung explizit über die identity-credentials-get Permissions-Policy erlauben:

html
<iframe
  src="https://idp.example/signin"
  allow="identity-credentials-get"></iframe>

Syntax

js
IdentityProvider.getUserInfo(config)

Parameter

config

Ein Konfigurationsobjekt, das die folgenden Eigenschaften enthalten kann:

configURL

Die URL der Konfigurationsdatei des Identitätsanbieters, von dem Sie Benutzerinformationen erhalten möchten.

clientId

Der vom IdP ausgegebene Client-Identifikator der RP.

Rückgabewert

Ein Promise, das mit einem Array von Objekten erfüllt wird, wobei jedes Objekt Informationen über ein separates Benutzerkonto enthält. Jedes Objekt enthält die folgenden Eigenschaften:

email

Ein String, der die E-Mail-Adresse des Benutzers darstellt.

name

Ein String, der den vollständigen Namen des Benutzers darstellt.

givenName

Ein String, der den Vornamen (Spitz- oder abgekürzter Name) des Benutzers darstellt.

picture

Ein String, der die URL des Profilbilds des Benutzers darstellt.

Ausnahmen

InvalidStateError DOMException

Wird ausgelöst, wenn die bereitgestellte configURL ungültig ist oder wenn der Ursprung des eingebetteten Dokuments nicht mit der configURL übereinstimmt.

NetworkError DOMException

Wird ausgelöst, wenn der Browser keine Verbindung zum IdP herstellen kann oder getUserInfo() vom obersten Dokument aus aufgerufen wird.

NotAllowedError DOMException

Wird ausgelöst, wenn das einbettende <iframe> keine identity-credentials-get Permissions-Policy gesetzt hat, die die Nutzung von getUserInfo() erlaubt oder wenn die FedCM API global durch eine auf das oberste Dokument festgelegte Richtlinie deaktiviert ist.

Beispiele

js
// Iframe displaying a page from the https://idp.example origin
const user_info = await IdentityProvider.getUserInfo({
  configUrl: "https://idp.example/fedcm.json",
  clientId: "client1234",
});

// IdentityProvider.getUserInfo() returns an array of user information.
if (user_info.length > 0) {
  // Returning accounts should be first, so the first account received
  // is guaranteed to be a returning account
  const name = user_info[0].name;
  const given_name = user_info[0].given_name;
  const display_name = given_name ? given_name : name;
  const picture = user_info[0].picture;
  const email = user_info[0].email;

  // ...

  // Render the personalized sign-in button using the information above
}

Spezifikationen

Specification
Federated Credential Management API
# dom-identityprovider-getuserinfo

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch