Consente a un utente di accedere o registrarsi utilizzando le credenziali di un provider di identità (IdP). Ciò viene fatto fornendo manualmente una credenziale dell'IDP o fornendo la risposta di autorizzazione ottenuta tramite la richiesta di autorizzazione da accounts.createAuthUri. Se l'accesso va a buon fine, vengono emessi un nuovo token ID e un nuovo token di aggiornamento di Identity Platform per l'utente autenticato.
Verrà creato un nuovo account utente Identity Platform se l'utente non ha eseguito l'accesso in precedenza al provider di identità con lo stesso account. Inoltre, quando l'impostazione "Un account per indirizzo email" è attiva, non deve esistere un account utente Identity Platform con lo stesso indirizzo email per poter creare un nuovo account utente.
Per identificare il progetto Google Cloud, nella richiesta è obbligatoria una chiave API.
Richiesta HTTP
POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp
L'URL utilizza la sintassi di transcodifica gRPC.
Corpo della richiesta
Il corpo della richiesta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{ "requestUri": string, "postBody": string, "pendingIdToken": string, "returnRefreshToken": boolean, "sessionId": string, "delegatedProjectNumber": string, "idToken": string, "returnSecureToken": boolean, "returnIdpCredential": boolean, "autoCreate": boolean, "tenantId": string, "pendingToken": string } |
Campi | |
---|---|
requestUri |
Obbligatorio. L'URL a cui l'IdP reindirizza l'utente. Questo valore può essere impostato su |
postBody |
Se l'utente accede con una risposta di autorizzazione ottenuta tramite una precedente richiesta di autorizzazione accounts.createAuthUri, questo è il corpo del callback POST HTTP dall'IdP, se presente. In caso contrario, se l'utente accede con una credenziale dell'IDP fornita manualmente, deve essere un modulo con codifica URL contenente la credenziale (ad es. un token ID o un token di accesso per le IdP OAuth 2.0) e l'ID provider dell'IDP che ha emesso la credenziale. Ad esempio, se l'utente accede al provider Google utilizzando un token ID Google, questo valore deve essere impostato su id_token Se l'utente accede al provider Facebook utilizzando un token di autenticazione Facebook, questo valore deve essere impostato su id_token Se l'utente accede al provider Facebook utilizzando un token di accesso Facebook, questo valore deve essere impostato su access_token Se l'utente accede al provider Twitter utilizzando una credenziale OAuth 1.0 di Twitter, questo valore deve essere impostato su access_token |
pendingIdToken |
|
returnRefreshToken |
Se restituire o meno il token di aggiornamento OAuth dall'IdP, se disponibile. |
sessionId |
L'ID sessione restituito da una chiamata accounts.createAuthUri precedente. Questo campo viene verificato in base a questo ID sessione per impedire attacchi di fissazione della sessione. Obbligatorio se l'utente accede con una risposta di autorizzazione da una precedente richiesta di autorizzazione accounts.createAuthUri. |
delegatedProjectNumber |
|
idToken |
Un token ID Identity Platform valido. Se viene superato, l'account dell'utente presso l'IdP verrà collegato all'account rappresentato da questo token ID. |
returnSecureToken |
Deve sempre essere true. |
returnIdpCredential |
Indica se restituire o meno le credenziali OAuth dall'IDP in caso di errori |
autoCreate |
|
tenantId |
L'ID del tenant Identity Platform a cui l'utente sta accedendo. Se non è impostato, l'utente accederà al progetto Identity Platform predefinito. |
pendingToken |
Una stringa opaca da una risposta accounts.signInWithIdp precedente. Se impostato, può essere utilizzato per ripetere l'operazione di accesso dall'operazione accounts.signInWithIdp precedente. Questo può verificarsi se l'utente deve confermare i dati del proprio account nell'ambito di un precedente tentativo di accesso federato o eseguire il collegamento dell'account. |
Corpo della risposta
Messaggio di risposta per accounts.signInWithIdp.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
Rappresentazione JSON |
---|
{
"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 ( |
Campi | |
---|---|
federatedId |
L'ID account dell'utente presso il provider di identità. Sempre presente nella risposta. |
providerId |
L'ID provider dell'IdP a cui l'utente sta accedendo. Sempre presente nella risposta. |
email |
L'indirizzo email dell'account dell'utente presso l'IDP. |
emailVerified |
Indica se l'indirizzo email dell'account utente è verificato. |
firstName |
Il nome dell'account dell'utente presso l'IDP. |
fullName |
Il nome completo dell'account dell'utente presso l'IDP. |
lastName |
Il cognome dell'account dell'utente presso l'IDP. |
nickName |
Il nickname dell'account dell'utente presso l'IDP. |
language |
La preferenza di lingua per l'account dell'utente presso l'IDP. |
timeZone |
Il fuso orario dell'account dell'utente presso l'IDP. |
photoUrl |
L'URL dell'immagine del profilo dell'utente nell'IDP. |
dateOfBirth |
La data di nascita dell'account dell'utente presso l'SP. |
inputEmail |
|
originalEmail |
L'indirizzo email principale (di primo livello) dell'account Identity Platform dell'utente, se diverso dall'indirizzo email dell'IdP. Presente solo se è attiva l'impostazione "Un account per indirizzo email". |
localId |
L'ID dell'utente di Identity Platform autenticato. Sempre presente nella risposta. |
emailRecycled |
Se esiste o meno un account utente Identity Platform con lo stesso indirizzo email, ma collegato a un altro account nello stesso IdP. Presente solo se l'impostazione "Un account per indirizzo email" è attivata e l'indirizzo email presso l'IDP è verificato. |
displayName |
Il nome visualizzato dell'account dell'utente presso l'IDP. |
idToken |
Un token ID Identity Platform per l'utente autenticato. |
context |
La stringa opaca impostata in accounts.createAuthUri che viene utilizzata per mantenere le informazioni contestuali tra la richiesta di autenticazione e il callback dell'IDP. |
verifiedProvider[] |
Un elenco di ID provider a cui l'utente può accedere per risolvere un errore |
needConfirmation |
Se esiste o meno un account utente Identity Platform con lo stesso indirizzo email dell'account corrente che ha eseguito l'accesso all'IdP e se l'indirizzo email dell'account non è verificato nell'IdP. L'utente dovrà accedere all'account Identity Platform esistente e collegare le credenziali correnti dell'IdP. Presente solo se è attiva l'impostazione "Un account per indirizzo email". |
oauthAccessToken |
Il token di accesso OAuth dell'IDP, se disponibile. |
oauthRefreshToken |
Il token di aggiornamento OAuth 2.0 dell'IDP, se disponibile e |
oauthExpireIn |
Il numero di secondi che rimangono prima della scadenza del token di accesso OAuth dell'IDP. |
oauthAuthorizationCode |
Il codice di autorizzazione OAuth 2.0, se disponibile. Presente solo per il provider Google. |
needEmail |
|
oauthTokenSecret |
Il secret del token OAuth 1.0 dell'IDP, se disponibile. Presente solo per il provider Twitter. |
refreshToken |
Un token di aggiornamento di Identity Platform per l'utente autenticato. |
expiresIn |
Il numero di secondi che rimangono prima della scadenza del token ID di Identity Platform. |
oauthIdToken |
Il token ID OpenID Connect del provider di identità, se disponibile. |
screenName |
Il nome visualizzato dell'account dell'utente presso l'IDP Twitter o il nome di accesso dell'account dell'utente presso l'IDP GitHub. |
rawUserInfo |
La risposta JSON con stringa contenente tutti i dati corrispondenti all'account dell'utente presso l'IDP. |
errorMessage |
Il messaggio di errore restituito se |
isNewUser |
Indica se è stato creato o meno un nuovo account Identity Platform per l'utente autenticato. |
kind |
|
pendingToken |
Una stringa opaca che può essere utilizzata come credenziale dell'IdP a cui l'utente accede. Il token in attesa ottenuto qui può essere impostato in una richiesta accounts.signInWithIdp futura per consentire di nuovo allo stesso utente di accedere con l'IDP. |
tenantId |
Il valore del campo |
mfaPendingCredential |
Una stringa opaca che funge da prova che l'utente ha superato l'autenticazione a due fattori. |
mfaInfo[] |
Informazioni sui provider di autenticazione a più fattori abilitati per l'account. Presente se l'utente deve completare l'accesso utilizzando l'autenticazione a più fattori. |
Ambiti di autorizzazione
Richiede uno dei seguenti ambiti OAuth:
https://www.googleapis.com/auth/identitytoolkit
https://www.googleapis.com/auth/cloud-platform
Per ulteriori informazioni, consulta la sezione Authentication Overview.