Faz login ou registra um usuário usando credenciais de um provedor de identidade (IdP). Isso é feito fornecendo manualmente uma credencial de IdP ou a resposta de autorização obtida pela solicitação de autorização de accounts.createAuthUri. Se o login for bem-sucedido, um novo token de ID e de atualização do Identity Platform será emitido para o usuário autenticado.
Uma nova conta de usuário do Identity Platform será criada se o usuário não tiver feito login no IdP com a mesma conta. Além disso, quando a configuração "Uma conta por endereço de e-mail" está ativada, não pode haver uma conta de usuário do Identity Platform com o mesmo endereço de e-mail para que uma nova conta de usuário seja criada.
Uma chave de API é necessária na solicitação para identificar o projeto do Google Cloud.
Solicitação HTTP
POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp
O URL usa a sintaxe de transcodificação gRPC.
Corpo da solicitação
O corpo da solicitação contém dados com a seguinte estrutura:
Representação 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 } |
Campos | |
---|---|
requestUri |
Obrigatório. O URL para o qual o IdP redireciona o usuário. Ele pode ser definido como |
postBody |
Se o usuário estiver fazendo login com uma resposta de autorização obtida por uma solicitação de autorização accounts.createAuthUri anterior, este será o corpo do callback POST HTTP do IdP, se presente. Caso contrário, se o usuário estiver fazendo login com uma credencial de IdP fornecida manualmente, ela precisa ser um formulário codificado em URL que contenha a credencial (por exemplo, um token de ID ou de acesso para IdPs do OAuth 2.0) e o ID do provedor do IdP que emitiu a credencial. Por exemplo, se o usuário fizer login no provedor do Google usando um token de ID do Google, ele será definido como id_token Se o usuário estiver fazendo login no provedor do Facebook usando um token de autenticação do Facebook, ele precisa ser definido como id_token Se o usuário estiver fazendo login no provedor do Facebook usando um token de acesso do Facebook, ele precisa ser definido como access_token Se o usuário estiver fazendo login no provedor do Twitter usando uma credencial do Twitter OAuth 1.0, ela precisa ser definida como access_token |
pendingIdToken |
|
returnRefreshToken |
Indica se é necessário retornar o token de atualização do OAuth do provedor de identidade, se disponível. |
sessionId |
O ID da sessão retornado de uma chamada accounts.createAuthUri anterior. Esse campo é verificado com esse ID para evitar ataques de fixação de sessão. Obrigatório se o usuário estiver fazendo login com uma resposta de autorização de uma solicitação de autorização accounts.createAuthUri anterior. |
delegatedProjectNumber |
|
idToken |
Um token de ID do Identity Platform válido. Se for aprovado, a conta do usuário no IdP será vinculada à conta representada por esse token de identificação. |
returnSecureToken |
Precisa ser sempre verdadeiro. |
returnIdpCredential |
Define se as credenciais do OAuth do provedor de identidade serão retornadas ou não nos seguintes erros: |
autoCreate |
|
tenantId |
O ID do locatário do Identity Platform em que o usuário está fazendo login. Se não for definido, o usuário vai fazer login no projeto padrão do Identity Platform. |
pendingToken |
Uma string opaca de uma resposta anterior de accounts.signInWithIdp. Se definido, ele pode ser usado para repetir a operação de login da operação accounts.signInWithIdp anterior. Isso pode acontecer se o usuário precisar confirmar as informações da conta como parte de uma tentativa anterior de login federado ou realizar a vinculação da conta. |
Corpo da resposta
Mensagem de resposta para accounts.signInWithIdp.
Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:
Representação 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 ( |
Campos | |
---|---|
federatedId |
O ID da conta do usuário no IdP. Sempre presente na resposta. |
providerId |
O ID do provedor do IdP em que o usuário está fazendo login. Sempre presente na resposta. |
email |
O endereço de e-mail da conta do usuário no IdP. |
emailVerified |
Indica se o endereço de e-mail da conta de usuário foi verificado. |
firstName |
O nome da conta do usuário no IdP. |
fullName |
O nome completo da conta do usuário no IdP. |
lastName |
O sobrenome da conta do usuário no IdP. |
nickName |
O apelido da conta do usuário no IdP. |
language |
A preferência de idioma da conta do usuário no IdP. |
timeZone |
O fuso horário da conta do usuário no IdP. |
photoUrl |
O URL da foto do perfil do usuário no IdP. |
dateOfBirth |
A data de nascimento da conta do usuário no IdP. |
inputEmail |
|
originalEmail |
O endereço de e-mail principal (de nível superior) da conta do usuário no Identity Platform, se for diferente do endereço de e-mail no IdP. Só aparece quando a configuração "Uma conta por endereço de e-mail" está ativada. |
localId |
O ID do usuário autenticado do Identity Platform. Sempre presente na resposta. |
emailRecycled |
Se há ou não uma conta de usuário do Identity Platform com o mesmo endereço de e-mail, mas vinculada a uma conta diferente no mesmo IdP. Só aparece quando a configuração "Uma conta por endereço de e-mail" está ativada e o endereço de e-mail no IdP está verificado. |
displayName |
O nome de exibição da conta do usuário no IdP. |
idToken |
Um token de ID do Identity Platform para o usuário autenticado. |
context |
A string opaca definida em accounts.createAuthUri, que é usada para manter informações contextuais entre a solicitação de autenticação e o callback do IdP. |
verifiedProvider[] |
Uma lista de IDs de provedores em que o usuário pode fazer login para resolver um erro |
needConfirmation |
Se existe ou não uma conta de usuário do Identity Platform com o mesmo endereço de e-mail da conta atual conectada no IdP e se o endereço de e-mail da conta não está verificado no IdP. O usuário precisa fazer login na conta do Identity Platform e vincular a credencial atual do IdP a ela. Só aparece quando a configuração "Uma conta por endereço de e-mail" está ativada. |
oauthAccessToken |
O token de acesso do OAuth do provedor de identidade, se disponível. |
oauthRefreshToken |
O token de atualização OAuth 2.0 do provedor de identidade, se disponível e |
oauthExpireIn |
O número de segundos até o token de acesso OAuth do IdP expirar. |
oauthAuthorizationCode |
O código de autorização OAuth 2.0, se disponível. Presente apenas para o provedor do Google. |
needEmail |
|
oauthTokenSecret |
O secret do token OAuth 1.0 do provedor de identidade, se disponível. Presente apenas para o provedor do Twitter. |
refreshToken |
Um token de atualização do Identity Platform para o usuário autenticado. |
expiresIn |
O número de segundos até o token de ID do Identity Platform expirar. |
oauthIdToken |
O token de ID do OpenID Connect do IdP, se disponível. |
screenName |
O nome de exibição da conta do usuário no IdP do Twitter ou o nome de login da conta do usuário no IdP do GitHub. |
rawUserInfo |
A resposta JSON em string que contém todos os dados correspondentes à conta do usuário no IdP. |
errorMessage |
A mensagem de erro retornada se |
isNewUser |
Se uma nova conta do Identity Platform foi criada para o usuário autenticado. |
kind |
|
pendingToken |
Uma string opaca que pode ser usada como uma credencial do IdP em que o usuário está fazendo login. O token pendente recebido aqui pode ser definido em uma solicitação accounts.signInWithIdp futura para fazer login do mesmo usuário com o IdP novamente. |
tenantId |
O valor do campo |
mfaPendingCredential |
Uma string opaca que funciona como prova de que o usuário passou pela autenticação do primeiro fator. |
mfaInfo[] |
Informações sobre quais provedores de autenticação multifator estão ativados para a conta. Apresente se o usuário precisar concluir o login usando a autenticação multifator. |
Escopos de autorização
Requer um dos seguintes escopos do OAuth:
https://www.googleapis.com/auth/identitytoolkit
https://www.googleapis.com/auth/cloud-platform
Para mais informações, consulte Authentication Overview.