Meldet einen Nutzer mit Anmeldedaten eines Identitätsanbieters an oder registriert ihn. Dazu können Sie manuell Anmeldedaten für den Identitätsanbieter angeben oder die Autorisierungsantwort bereitstellen, die über die Autorisierungsanfrage von accounts.createAuthUri zurückgegeben wurde. Wenn die Anmeldung erfolgreich ist, werden für den authentifizierten Nutzer ein neues Identity Platform-ID-Token und ein neues Aktualisierungstoken ausgestellt.
Ein neues Identity Platform-Nutzerkonto wird erstellt, wenn sich der Nutzer zuvor nicht mit demselben Konto beim Identitätsanbieter angemeldet hat. Wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist, darf kein Identity Platform-Nutzerkonto mit derselben E-Mail-Adresse vorhanden sein, damit ein neues Nutzerkonto erstellt werden kann.
In der Anfrage ist ein API-Schlüssel erforderlich, um das Google Cloud-Projekt zu identifizieren.
HTTP-Anfrage
POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp
Die URL verwendet die Syntax der gRPC-Transcodierung.
Anfragetext
Der Anfragetext enthält Daten mit folgender Struktur:
JSON-Darstellung |
---|
{ "requestUri": string, "postBody": string, "pendingIdToken": string, "returnRefreshToken": boolean, "sessionId": string, "delegatedProjectNumber": string, "idToken": string, "returnSecureToken": boolean, "returnIdpCredential": boolean, "autoCreate": boolean, "tenantId": string, "pendingToken": string } |
Felder | |
---|---|
requestUri |
Pflichtangabe. Die URL, an die der IdP den Nutzer zurückleitet. Dieser Wert kann auf |
postBody |
Wenn sich der Nutzer mit einer Autorisierungsantwort anmeldet, die über eine vorherige Autorisierungsanfrage von accounts.createAuthUri abgerufen wurde, ist dies der Textkörper des HTTP-POST-Callbacks vom IdP, sofern vorhanden. Andernfalls, wenn sich der Nutzer mit manuell bereitgestellten Anmeldedaten für den Identitätsanbieter anmeldet, sollte dies ein URL-codiertes Formular sein, das die Anmeldedaten (z.B. ein ID-Token oder Zugriffstoken für OAuth 2.0-Identitätsanbieter) und die Anbieter-ID des Identitätsanbieters enthält, der die Anmeldedaten ausgestellt hat. Wenn sich der Nutzer beispielsweise mit einem Google-ID-Token beim Google-Anbieter anmeldet, sollte dies auf id_token Wenn sich der Nutzer mit einem Facebook-Authentifizierungstoken beim Facebook-Anbieter anmeldet, sollte dies auf id_token Wenn sich der Nutzer mit einem Facebook-Zugriffstoken beim Facebook-Anbieter anmeldet, sollte dies auf access_token Wenn sich der Nutzer mit Twitter OAuth 1.0-Anmeldedaten beim Twitter-Anbieter anmeldet, sollte dies auf access_token |
pendingIdToken |
|
returnRefreshToken |
Gibt an, ob das OAuth-Aktualisierungstoken vom Identitätsanbieter zurückgegeben werden soll, falls verfügbar. |
sessionId |
Die Sitzungs-ID, die von einem vorherigen Aufruf von „accounts.createAuthUri“ zurückgegeben wurde. Dieses Feld wird anhand dieser Sitzungs-ID überprüft, um Angriffe über Sitzungsfixierung zu verhindern. Erforderlich, wenn sich der Nutzer mit einer Autorisierungsantwort aus einer vorherigen Autorisierungsanfrage von accounts.createAuthUri anmeldet. |
delegatedProjectNumber |
|
idToken |
Ein gültiges Identity Platform-ID-Token. Wenn der Test bestanden wird, wird das Konto des Nutzers beim IdP mit dem Konto verknüpft, das durch dieses ID-Token dargestellt wird. |
returnSecureToken |
Sollte immer wahr sein. |
returnIdpCredential |
Gibt an, ob OAuth-Anmeldedaten vom IdP für die folgenden Fehler zurückgegeben werden sollen: |
autoCreate |
|
tenantId |
Die ID des Identity Platform-Mandanten, bei dem sich der Nutzer anmeldet. Wenn nicht festgelegt, meldet sich der Nutzer im Standardprojekt von Identity Platform an. |
pendingToken |
Ein undurchsichtiger String aus einer vorherigen Antwort von „accounts.signInWithIdp“. Wenn dieser Parameter festgelegt ist, kann er verwendet werden, um den Anmeldevorgang aus dem vorherigen Vorgang „accounts.signInWithIdp“ zu wiederholen. Das kann der Fall sein, wenn der Nutzer seine Kontoinformationen im Rahmen eines vorherigen föderierten Anmeldeversuchs bestätigen oder eine Kontoverknüpfung vornehmen muss. |
Antworttext
Antwortnachricht für accounts.signInWithIdp.
Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:
JSON-Darstellung |
---|
{
"federatedId": string,
"providerId": string,
"email": string,
"emailVerified": boolean,
"firstName": string,
"fullName": string,
"lastName": string,
"nickName": string,
"language": string,
"timeZone": string,
"photoUrl": string,
"dateOfBirth": string,
"inputEmail": string,
"originalEmail": string,
"localId": string,
"emailRecycled": boolean,
"displayName": string,
"idToken": string,
"context": string,
"verifiedProvider": [
string
],
"needConfirmation": boolean,
"oauthAccessToken": string,
"oauthRefreshToken": string,
"oauthExpireIn": integer,
"oauthAuthorizationCode": string,
"needEmail": boolean,
"oauthTokenSecret": string,
"refreshToken": string,
"expiresIn": string,
"oauthIdToken": string,
"screenName": string,
"rawUserInfo": string,
"errorMessage": string,
"isNewUser": boolean,
"kind": string,
"pendingToken": string,
"tenantId": string,
"mfaPendingCredential": string,
"mfaInfo": [
{
object ( |
Felder | |
---|---|
federatedId |
Die Konto-ID des Nutzers beim IdP. Muss immer in der Antwort vorhanden sein. |
providerId |
Die Anbieter-ID des Identitätsanbieters, bei dem sich der Nutzer anmeldet. Muss immer in der Antwort vorhanden sein. |
email |
Die E-Mail-Adresse des Kontos des Nutzers beim Identitätsanbieter. |
emailVerified |
Gibt an, ob die E-Mail-Adresse des Nutzerkontos bestätigt wurde. |
firstName |
Der Vorname des Nutzers für sein Konto beim IdP. |
fullName |
Der vollständige Name des Nutzerkontos beim IdP. |
lastName |
Der Nachname des Nutzers für sein Konto beim IdP. |
nickName |
Der Alias für das Konto des Nutzers beim IdP. |
language |
Die Spracheinstellung für das Konto des Nutzers beim IdP. |
timeZone |
Die Zeitzone für das Konto des Nutzers beim IdP. |
photoUrl |
Die URL des Profilbilds des Nutzers beim Identitätsanbieter. |
dateOfBirth |
Das Geburtsdatum des Nutzers für sein Konto beim Identitätsanbieter. |
inputEmail |
|
originalEmail |
Die Haupt-E-Mail-Adresse (E-Mail-Adresse der obersten Ebene) des Identity Platform-Kontos des Nutzers, sofern sie von der E-Mail-Adresse beim IdP abweicht. Nur vorhanden, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist. |
localId |
Die ID des authentifizierten Identity Platform-Nutzers. Muss immer in der Antwort vorhanden sein. |
emailRecycled |
Ob es ein Identity Platform-Nutzerkonto mit derselben E-Mail-Adresse gibt, das aber mit einem anderen Konto beim selben IdP verknüpft ist. Nur vorhanden, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist und die E-Mail-Adresse beim IdP bestätigt wurde. |
displayName |
Der Anzeigename für das Konto des Nutzers beim Identitätsanbieter. |
idToken |
Ein Identity Platform-ID-Token für den authentifizierten Nutzer. |
context |
Der in „accounts.createAuthUri“ festgelegte opake String, der verwendet wird, um Kontextinformationen zwischen der Authentifizierungsanfrage und dem Callback vom IdP aufrechtzuerhalten. |
verifiedProvider[] |
Eine Liste von Anbieter-IDs, mit denen sich der Nutzer anmelden kann, um einen |
needConfirmation |
Ob es ein Identity Platform-Nutzerkonto mit derselben E-Mail-Adresse wie das aktuelle Konto gibt, das beim IdP angemeldet ist, und ob die E-Mail-Adresse des Kontos beim IdP nicht bestätigt wurde. Der Nutzer muss sich im vorhandenen Identity Platform-Konto anmelden und die aktuellen Anmeldedaten des IdP damit verknüpfen. Nur vorhanden, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ aktiviert ist. |
oauthAccessToken |
Das OAuth-Zugriffstoken des Identitätsanbieters, falls verfügbar. |
oauthRefreshToken |
Das OAuth 2.0-Aktualisierungstoken vom IdP, falls verfügbar und |
oauthExpireIn |
Die Anzahl der Sekunden, bis das OAuth-Zugriffstoken vom IdP abläuft. |
oauthAuthorizationCode |
Den OAuth 2.0-Autorisierungscode, falls verfügbar. Nur für den Google-Anbieter vorhanden. |
needEmail |
|
oauthTokenSecret |
Das OAuth 1.0-Token-Secret des Identitätsanbieters, falls verfügbar. Nur für den Twitter-Anbieter vorhanden. |
refreshToken |
Ein aktualisierter Identity Platform-Token für den authentifizierten Nutzer. |
expiresIn |
Die Anzahl der Sekunden, bis das Identity Platform-ID-Token abläuft. |
oauthIdToken |
Das OpenID Connect-ID-Token vom IdP, falls verfügbar. |
screenName |
Der Alias für das Konto des Nutzers beim Twitter-IdP oder der Anmeldename für das Konto des Nutzers beim GitHub-IdP. |
rawUserInfo |
Die String-JSON-Antwort mit allen Daten, die dem Konto des Nutzers beim IdP entsprechen. |
errorMessage |
Die Fehlermeldung, die zurückgegeben wird, wenn |
isNewUser |
Gibt an, ob für den authentifizierten Nutzer ein neues Identity Platform-Konto erstellt wurde. |
kind |
|
pendingToken |
Ein intransparenter String, der als Anmeldedaten des Identitätsanbieters verwendet werden kann, bei dem sich der Nutzer anmeldet. Das hier erhaltene ausstehende Token kann in einer zukünftigen accounts.signInWithIdp-Anfrage festgelegt werden, um denselben Nutzer noch einmal beim Identitätsanbieter anzumelden. |
tenantId |
Der Wert des Felds |
mfaPendingCredential |
Ein nicht transparenter String, der als Nachweis dient, dass der Nutzer die Authentifizierung mit dem ersten Faktor bestanden hat. |
mfaInfo[] |
Informationen dazu, welche Anbieter für die Multi-Faktor-Authentifizierung für das Konto aktiviert sind. Wird angezeigt, wenn der Nutzer die Anmeldung mit der Multi-Faktor-Authentifizierung abschließen muss. |
Autorisierungsbereiche
Erfordert einen der folgenden OAuth-Bereiche:
https://www.googleapis.com/auth/identitytoolkit
https://www.googleapis.com/auth/cloud-platform
Weitere Informationen finden Sie unter Authentication Overview.