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 personalisierte Willkommensnachricht und einen Anmelde-Button bereitzustellen. Diese Methode muss von einem Identitätsanbieter-Ursprung (IdP) aus innerhalb eines <iframe>
aufgerufen werden, sodass RP-Skripte nicht auf die Daten zugreifen können. Dies muss erfolgen, nachdem ein Benutzer sich bei einer relying party (RP)-Seite angemeldet hat.
Dieses Muster ist bereits bei Websites üblich, die Identitätsföderation für die Anmeldung verwenden, aber getUserInfo()
bietet eine Möglichkeit, dies ohne den Einsatz von Drittanbieter-Cookies zu erreichen.
Nutzungshinweise
Wenn getUserInfo()
aufgerufen wird, sendet der Browser eine Anfrage an den IdP Accounts-Listen-Endpunkt für die Benutzerinformationen nur dann, wenn beide der folgenden Bedingungen zutreffen:
- Der Benutzer hat sich zuvor mit dem IdP über FedCM bei der RP im selben Browser-Instance angemeldet, und die Daten wurden nicht gelöscht.
- Der Benutzer ist beim IdP im selben Browser-Instance angemeldet.
getUserInfo()
muss innerhalb eines eingebetteten <iframe>
aufgerufen werden, und der Ursprung der eingebetteten Seite muss mit der configURL
des IdP übereinstimmen. Zusätzlich muss das einbettende HTML den Gebrauch explizit über die identity-credentials-get
Permissions-Policy erlauben:
<iframe
src="https://idp.example/signin"
allow="identity-credentials-get"></iframe>
Syntax
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
-
Die Client-Kennung der RP, die vom IdP ausgestellt wurde.
Rückgabewert
Ein Promise
, das mit einem Array von Objekten erfüllt wird, wobei jedes Objekt Informationen darstellt, die einem separaten Benutzerkonto entsprechen. Jedes Objekt enthält die folgenden Eigenschaften:
Ausnahmen
InvalidStateError
DOMException
-
Wird ausgelöst, wenn die angegebene
configURL
ungültig ist oder wenn der Ursprung des eingebetteten Dokuments nicht mit derconfigURL
übereinstimmt. NetworkError
DOMException
-
Wird ausgelöst, wenn der Browser nicht mit dem IdP verbinden kann oder wenn
getUserInfo()
vom Dokument auf oberster Ebene aufgerufen wird. NotAllowedError
DOMException
-
Wird ausgelöst, wenn das einbettende
<iframe>
keineidentity-credentials-get
Permissions-Policy gesetzt hat, um die Nutzung vongetUserInfo()
zu erlauben, oder wenn die FedCM API global durch eine im Dokument auf oberster Ebene gesetzte Richtlinie deaktiviert ist.
Beispiele
// 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
Siehe auch
- Federated Credential Management API auf privacysandbox.google.com (2023)