Uso da API REST

Este documento mostra como executar operações de usuário comuns, como o login de usuários e o trabalho com tokens, usando a API REST do Identity Platform.

Antes de começar

Para usar a API REST, você precisará de uma chave de API do Identity Platform. Para conseguir uma chave:

  1. Acesse a página Provedores de identidade no console do Google Cloud.
    Acessar a página "Provedores do Identity Platform"

  2. Clique em Detalhes da configuração da aplicação.

  3. Copie o campo apiKey.

Observe que HTTPS é obrigatório para todas as chamadas de API.

Como chamar a API

Trocar token personalizado por um ID e um token de atualização

É possível trocar um token de autenticação personalizado por um ID e token de atualização emitindo uma solicitação POST HTTP para o endpoint signInWithCustomToken.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
token string Um token personalizado do Identity Platform a partir do qual é possível criar um par de tokens e ID.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
tenantId string O ID do locatário em que o usuário está fazendo login. Usado somente no multilocação.
Precisa corresponder ao tenant_id no token.
Reivindicações de token personalizados
Property Nome Descrição
alg Algoritmo Precisa ser RS256.
iss Emissor Endereço de e-mail da conta de serviço do seu projeto.
sub Assunto Endereço de e-mail da conta de serviço do seu projeto.
aud Público-alvo https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit
iat Hora de emissão A hora exata, em segundos desde a época de UNIX.
exp tempo de expiração O tempo, em segundos, desde a época do UNIX, em que o token expira. Pode ser no máximo 3.600 segundos depois de iat.
Observação: ele controla o tempo apenas quando o token personalizado expira. No entanto, quando você faz login com um usuário usando signInWithCustomToken(), ele permanecerá conectado ao dispositivo até que a sessão seja invalidada ou que o usuário desconecte.
uid ID do usuário O identificador exclusivo do usuário, entre 1 e 36 caracteres.
tenant_id ID do locatário O identificador do locatário em que o usuário está fazendo login.
declarações (opcional) Declarações personalizadas opcionais a serem incluídas nas variáveis auth ou request.auth das regras de segurança.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform gerado a partir do token personalizado fornecido.
refreshToken string Um token de atualização do Identity Platform gerado a partir do token personalizado fornecido.
expiresIn string O número de segundos em que o token de ID expira.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token do ID do Identity Platform e o token de atualização associados ao token personalizado.

Exemplo de resposta:

{
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Códigos de erro comuns:

  • INVALID_CUSTOM_TOKEN: o formato do token personalizado está incorreto ou o token é inválido por algum motivo (por exemplo, expirou, assinatura inválida etc.)
  • CREDENTIAL_MISMATCH: o token personalizado corresponde a outro projeto do Google Cloud.

Trocar um token de atualização por um token de ID

É possível atualizar um token de ID do Identity Platform emitindo uma solicitação POST HTTP para o endpoint securetoken.googleapis.com.

Método: POST

Tipos de conteúdo: application/x-www-form-urlencoded

Endpoint
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
grant_type string O tipo de concessão do token de atualização, sempre "refresh_token".
refresh_token string Token de atualização do Identity Platform.
Payload de resposta
Nome da propriedade Tipo Descrição
expires_in string O número de segundos em que o token de ID expira.
token_type string Tipo de token de atualização, sempre "Bearer".
refresh_token string O token de atualização do Identity Platform fornecido na solicitação ou um novo token de atualização.
id_token string Um token de ID do Identity Platform.
user_id string O uid correspondente ao token de ID fornecido.
project_id string É o ID do seu projeto no Google Cloud.

Exemplo de solicitação

curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o novo token de ID do Identity Platform e o token de atualização.

Exemplo de resposta:

{
  "expires_in": "3600",
  "token_type": "Bearer",
  "refresh_token": "[REFRESH_TOKEN]",
  "id_token": "[ID_TOKEN]",
  "user_id": "tRcfmLH7o2XrNELi...",
  "project_id": "1234567890"
}

Códigos de erro comuns:

  • TOKEN_EXPIRED: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • USER_DISABLED: a conta de usuário foi desativada por um administrador.
  • USER_NOT_FOUND: o usuário correspondente ao token de atualização não foi encontrado. É provável que o usuário tenha sido excluído.
  • Chave de API inválida. Passe uma chave de API válida. (chave de API inválida fornecida)
  • INVALID_REFRESH_TOKEN: um token de atualização inválido é fornecido.
  • O payload JSON recebido é inválido. Nome desconhecido \"refresh_tokens\": não é possível vincular o parâmetro de consulta. O campo "refresh_tokens" não foi encontrado na mensagem de solicitação.
  • INVALID_GRANT_TYPE: o tipo de concessão especificado é inválido.
  • MISSING_REFRESH_TOKEN: nenhum token de atualização foi fornecido.
  • PROJECT_NUMBER_MISMATCH: o número do projeto do token de atualização não corresponde ao da chave de API fornecida.

Inscreva-se com e-mail/senha

É possível criar um novo usuário de e-mail e senha emitindo uma solicitação HTTP POST para o endpoint signupNewUser de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
email string O e-mail do usuário a ser criado.
senha string A senha para o usuário a ser criada.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
tenantId string O ID de locatário do usuário a ser criado. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform para o usuário recém-criado.
email string O e-mail do usuário recém-criado.
refreshToken string Um token de atualização do Identity Platform para o usuário recém-criado.
expiresIn string O número de segundos em que o token de ID expira.
localId string O uid do usuário recém-criado.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[[email protected]]","password":"[PASSWORD]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associados à nova conta.

Exemplo de resposta:

{
  "idToken": "[ID_TOKEN]",
  "email": "[[email protected]]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "tRcfmLH7..."
}

Códigos de erro comuns:

  • EMAIL_EXISTS: o endereço de e-mail já está sendo usado por outra conta.
  • OPERATION_NOT_ALLOWED: o login por senha está desativado para este projeto.
  • TOO_MANY_ATTEMPTS_TRY_LATER: bloqueamos todas as solicitações deste dispositivo devido a atividades incomuns. Tente mais tarde.

Fazer login com e-mail/senha

É possível fazer login de um usuário com um e-mail e senha emitindo uma solicitação HTTP POST para o endpoint verifyPassword de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
email string O e-mail que o usuário está acessando.
senha string A senha da conta.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
tenantId string O ID do locatário em que o usuário está fazendo login. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform para o usuário autenticado.
email string O e-mail do usuário autenticado.
refreshToken string Um token de atualização do Identity Platform para o usuário autenticado.
expiresIn string O número de segundos em que o token de ID expira.
localId string O uid do usuário autenticado.
registrado boolean Se o e-mail é de uma conta atual.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"email":"[[email protected]]","password":"[PASSWORD]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associados à conta de e-mail/senha atual.

Exemplo de resposta:

{
  "localId": "ZY1rJK0eYLg...",
  "email": "[[email protected]]",
  "displayName": "",
  "idToken": "[ID_TOKEN]",
  "registered": true,
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Códigos de erro comuns:

  • EMAIL_NOT_FOUND: não há registro de usuário correspondente a este identificador. O usuário pode ter sido excluído.
  • INVALID_PASSWORD: a senha é inválida ou o usuário não tem uma senha.
  • USER_DISABLED: a conta de usuário foi desativada por um administrador.

Fazer login anonimamente

É possível fazer login de um usuário anonimamente emitindo uma solicitação HTTP POST para o endpoint signupNewUser de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
tenantId string O ID do locatário em que o usuário está fazendo login. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform para o usuário recém-criado.
email string Como o usuário é anônimo, isso precisa estar vazio.
refreshToken string Um token de atualização do Identity Platform para o usuário recém-criado.
expiresIn string O número de segundos em que o token de ID expira.
localId string O uid do usuário recém-criado.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário anônimo.

Exemplo de resposta:

{
  "idToken": "[ID_TOKEN]",
  "email": "",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "Jws4SVjpT..."
}

Códigos de erro comuns:

  • OPERATION_NOT_ALLOWED: o login anônimo de usuário está desativado para este projeto.

Fazer login com a credencial OAuth

É possível fazer login de um usuário com uma credencial OAuth enviando uma solicitação HTTP POST para o endpoint verifyAssertion de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
requestUri string O URI para o qual o IDP redireciona o usuário de volta.
postBody string Contém a credencial do OAuth (um token de ID ou token de acesso) e o ID do provedor que emite a credencial.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
returnIdpCredential boolean Define se o retorno da credencial do OAuth será forçado nos seguintes erros: FEDERATED_USER_ID_ALREADY_LINKED e EMAIL_EXISTS.
tenantId string O ID do locatário em que o usuário está fazendo login. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
federatedId string O ID exclusivo identifica a conta do IdP.
providerId string O código do provedor vinculado (por exemplo, "google.com" para o provedor Google).
localId string O uid do usuário autenticado.
emailVerified boolean Se o e-mail de login foi verificado.
email string O e-mail da conta.
oauthIdToken string O token de ID do OIDC, se disponível.
oauthAccessToken string O token de acesso do OAuth, se disponível.
oauthTokenSecret string O secret do token OAuth 1.0, se disponível.
rawUserInfo string A resposta JSON em string que contém todos os dados do IdP correspondentes à credencial OAuth fornecida.
firstName string O nome da conta.
lastName string O sobrenome da conta.
fullName string O nome completo da conta.
displayName string Nome de exibição da conta.
photoUrl string O URL da foto da conta.
idToken string Um token de ID do Identity Platform para o usuário autenticado.
refreshToken string Um token de atualização do Identity Platform para o usuário autenticado.
expiresIn string O número de segundos em que o token de ID expira.
needConfirmation boolean Já existe outra conta com a mesma credencial. O usuário precisará fazer login na conta original e, em seguida, vincular a credencial atual.

Exemplo de solicitação com token de ID do OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta com token de ID do OAuth

{
  "federatedId": "https://accounts.google.com/1234567890",
  "providerId": "google.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "[email protected]",
  "oauthIdToken": "[GOOGLE_ID_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57 0000\",\"gender\":\"male\", ...}"
}

Exemplo de solicitação com token de acesso OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta com o token de acesso OAuth

{
  "federatedId": "http://facebook.com/1234567890",
  "providerId": "facebook.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "[email protected]",
  "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://scontent.xx.fbcdn.net/v/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57 0000\",\"gender\":\"male\", ...}"
}

Exemplo de solicitação com credencial do Twitter OAuth 1.0

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta com credencial OAuth do Twitter 1.0

{
  "federatedId": "http://twitter.com/1234567890",
  "providerId": "twitter.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "[email protected]",
  "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]",
  "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "http://abs.twimg.com/sticky/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57 0000\",\"gender\":\"male\", ...}"
}

Códigos de erro comuns:

  • OPERATION_NOT_ALLOWED: o provedor correspondente está desativado para este projeto.
  • INVALID_IDP_RESPONSE: a credencial de autenticação fornecida é inválida ou expirou.

Buscar provedores de e-mail

É possível procurar todos os provedores associados a um e-mail especificado enviando uma solicitação HTTP POST para o endpoint de createAuthUri de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
identificador string Endereço de e-mail do usuário
continueUri string O URI para o qual o IDP redireciona o usuário de volta. Neste caso de uso, apenas o URL atual.
tenantId string O ID do locatário em que o usuário está fazendo login. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
allProviders Lista de strings A lista de provedores com os quais o usuário fez login anteriormente.
registrado boolean Se o e-mail é para uma conta atual.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"identifier":"[[email protected]]","continueUri":"[http://localhost:8080/app]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém a lista de provedores associados ao e-mail.

Exemplo de resposta:

{
  "allProviders": [
    "password",
    "google.com"
  ],
  "registered": true
}

Códigos de erro comuns:

  • INVALID_EMAIL: o endereço de e-mail está formatado incorretamente.

Enviar e-mail de redefinição de senha

É possível enviar um e-mail de redefinição de senha enviando uma solicitação POST HTTP para o endpoint getOobConfirmationCode de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Cabeçalhos opcionais
Nome da propriedade Descrição
X-Firebase-Locale O código de idioma correspondente à localidade do usuário. Passar isso localizará o e-mail de redefinição de senha enviado ao usuário.
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
requestType string Tipo de código OOB a ser retornado. Precisa ser "PASSWORD_RESET" para a redefinição de senha.
email string Endereço de e-mail do usuário.
tenantId string O ID do locatário do usuário que está solicitando a redefinição de senha. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
email string Endereço de e-mail do usuário.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"requestType":"PASSWORD_RESET","email":"[[email protected]]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
 "email": "[[email protected]]"
}

Códigos de erro comuns:

  • EMAIL_NOT_FOUND: não há registro de usuário correspondente a este identificador. O usuário pode ter sido excluído.

Verificar o código de redefinição de senha

É possível verificar um código de redefinição de senha emitindo uma solicitação HTTP POST para o endpoint resetPassword de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
oobCode string O código de ação de e-mail enviado ao e-mail do usuário para redefinir a senha.
tenantId string O ID do locatário do usuário que está solicitando a redefinição de senha. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
email string Endereço de e-mail do usuário.
requestType string Tipo de código de ação de e-mail. Precisa ser "PASSWORD_RESET".

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
  "email": "[[email protected]]",
  "requestType": "PASSWORD_RESET"
}

Códigos de erro comuns:

  • OPERATION_NOT_ALLOWED: o login por senha está desativado para este projeto.
  • EXPIRED_OOB_CODE: o código da ação expirou.
  • INVALID_ coB_CODE: o código de ação é inválido. Isso poderá acontecer se o código estiver incorreto, expirado ou já tiver sido usado.

Confirmar redefinição da senha

É possível aplicar uma alteração de redefinição de senha emitindo uma solicitação HTTP POST para o endpoint resetPassword de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
oobCode string O código de ação de e-mail enviado ao e-mail do usuário para redefinir a senha.
newPassword string A nova senha do usuário.
tenantId string O ID do locatário do usuário que está solicitando a redefinição de senha. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
email string Endereço de e-mail do usuário.
requestType string Tipo de código de ação de e-mail. Precisa ser "PASSWORD_RESET".

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
  "email": "[[email protected]]",
  "requestType": "PASSWORD_RESET"
}

Códigos de erro comuns:

  • OPERATION_NOT_ALLOWED: o login por senha está desativado para este projeto.
  • EXPIRED_OOB_CODE: o código da ação expirou.
  • INVALID_ coB_CODE: o código de ação é inválido. Isso poderá acontecer se o código estiver incorreto, expirado ou já tiver sido usado.
  • USER_DISABLED: a conta de usuário foi desativada por um administrador.

Alterar e-mail

É possível alterar o e-mail de um usuário emitindo uma solicitação HTTP POST para o endpoint setAccountInfo de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Cabeçalhos opcionais
Nome da propriedade Descrição
X-Firebase-Locale O código de idioma correspondente à localidade do usuário. Passar isso localizará a revogação da alteração de e-mail enviada ao usuário.
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform para o usuário.
email string O novo e-mail do usuário.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token.
Payload de resposta
Nome da propriedade Tipo Descrição
localId string O uid do usuário atual.
email string Endereço de e-mail do usuário.
passwordHash string Versão de hash da senha.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
idToken string Novo token de ID do Identity Platform para o usuário.
refreshToken string Token de atualização do Identity Platform.
expiresIn string O número de segundos em que o token de ID expira.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[GCIP_ID_TOKEN]","email":"[[email protected]]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o novo token de ID do Identity Platform e o token de atualização associado ao usuário.

Exemplo de resposta:

{
  "localId": "tRcfmLH7o2...",
  "email": "[[email protected]]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[[email protected]]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Códigos de erro comuns:

  • EMAIL_EXISTS: o endereço de e-mail já está sendo usado por outra conta.
  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.

Alterar senha

É possível alterar a senha de um usuário emitindo uma solicitação HTTP POST para o endpoint de autenticação setAccountInfo.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform para o usuário.
senha string Nova senha do usuário.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token.
Payload de resposta
Nome da propriedade Tipo Descrição
localId string O uid do usuário atual.
email string Endereço de e-mail do usuário.
passwordHash string Versão de hash da senha.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
idToken string Novo token de ID do Identity Platform para o usuário.
refreshToken string Token de atualização do Identity Platform.
expiresIn string O número de segundos em que o token de ID expira.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[GCIP_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o novo token de ID do Identity Platform e o token de atualização associado ao usuário.

Exemplo de resposta:

{
  "localId": "tRcfmLH7o2...",
  "email": "[[email protected]]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[[email protected]]"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Códigos de erro comuns:

  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • WEAK_PASSWORD: a senha precisa ter seis caracteres ou mais.

Atualizar perfil

É possível atualizar o perfil de um usuário (nome de exibição/URL da foto) enviando uma solicitação HTTP POST para o endpoint de autenticação setAccountInfo.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Identity Platform para o usuário.
displayName string O novo nome de exibição do usuário.
photoUrl string URL da nova foto do usuário.
deleteAttribute Lista de strings Lista de atributos a serem excluídos, "DISPLAY_NAME" ou "PHOTO_URL". Isso anulará esses valores.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token.
Payload de resposta
Nome da propriedade Tipo Descrição
localId string O uid do usuário atual.
email string Endereço de e-mail do usuário.
displayName string O novo nome de exibição do usuário.
photoUrl string URL da nova foto do usuário.
passwordHash string Versão de hash da senha.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
idToken string Novo token de ID do Identity Platform para o usuário.
refreshToken string Token de atualização do Identity Platform.
expiresIn string O número de segundos em que o token de ID expira.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
  "localId": "tRcfmLH...",
  "email": "[email protected]",
  "displayName": "John Doe",
  "photoUrl": "[http://localhost:8080/img1234567890/photo.png]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[email protected]",
      "displayName": "John Doe",
      "photoUrl": "http://localhost:8080/img1234567890/photo.png"
    }
  ],
  "idToken": "[NEW_ID_TOKEN]",
  "refreshToken": "[NEW_REFRESH_TOKEN]",
  "expiresIn": "3600"
}

Códigos de erro comuns:

  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.

Acessar dados do usuário

É possível receber os dados do usuário emitindo uma solicitação HTTP POST para o endpoint de autenticação getAccountInfo.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string O token de ID do Identity Platform da conta.
Payload de resposta
Nome da propriedade Tipo Descrição
users Lista de objetos JSON A conta associada ao token de ID do Identity Platform fornecido. Confira abaixo mais detalhes.
Payload de resposta (conteúdo de matriz users)
Nome da propriedade Tipo Descrição
localId string O uid do usuário atual.
email string O e-mail da conta.
emailVerified boolean Se o e-mail da conta foi verificado ou não.
displayName string Nome de exibição da conta.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
photoUrl string O URL da foto da conta.
passwordHash string Versão de hash da senha.
passwordUpdatedAt duplo O carimbo de data/hora, em milissegundos, da última vez que a senha da conta foi alterada.
validSince string O carimbo de data/hora, em segundos, que marca um limite antes do qual os tokens de ID do Identity Platform são considerados revogados.
desativado boolean Se a conta está desativada ou não.
lastLoginAt string O carimbo de data/hora, em milissegundos, em que a conta fez login pela última vez.
createdAt string O carimbo de data/hora, em milissegundos, em que a conta foi criada.
customAuth boolean Se a conta é autenticada pelo desenvolvedor.
tenantId string O ID do locatário do usuário. Retornado somente em multilocação.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta conterá todas as informações do usuário associadas à conta.

Exemplo de resposta:

{
  "users": [
    {
      "localId": "ZY1rJK0...",
      "email": "[email protected]",
      "emailVerified": false,
      "displayName": "John Doe",
      "providerUserInfo": [
        {
          "providerId": "password",
          "displayName": "John Doe",
          "photoUrl": "http://localhost:8080/img1234567890/photo.png",
          "federatedId": "[email protected]",
          "email": "[email protected]",
          "rawId": "[email protected]",
          "screenName": "[email protected]"
        }
      ],
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
      "passwordHash": "...",
      "passwordUpdatedAt": 1.484124177E12,
      "validSince": "1484124177",
      "disabled": false,
      "lastLoginAt": "1484628946000",
      "createdAt": "1484124142000",
      "customAuth": false
    }
  ]
}

Códigos de erro comuns:

  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • USER_NOT_FOUND: não há registros de usuário correspondentes a este identificador. O usuário pode ter sido excluído.

É possível vincular um e-mail/senha a um usuário atual emitindo uma solicitação POST HTTP para o endpoint setAccountInfo de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string O token de ID do Identity Platform da conta que você está tentando vincular à credencial.
email string O e-mail a ser vinculado à conta.
senha string A nova senha da conta.
returnSecureToken string Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
Payload de resposta
Nome da propriedade Tipo Descrição
localId string O uid do usuário atual.
email string O e-mail da conta.
displayName string Nome de exibição da conta.
photoUrl string O URL da foto da conta.
passwordHash string Versão de hash da senha.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
emailVerified boolean Se o e-mail da conta foi verificado ou não.
idToken string Novo token de ID do Identity Platform para o usuário.
refreshToken string Token de atualização do Identity Platform.
expiresIn string O número de segundos em que o token de ID expira.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[ID_TOKEN]","email":"[[email protected]]","password":"[PASS]","returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta:

{
  "localId": "huDwUz...",
  "email": "[email protected]",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[email protected]"
    }
  ],
  "idToken": "[ID_TOKEN]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "emailVerified": false
}

Códigos de erro comuns:

  • CREDENTIAL_TOO_OLD_LOGIN_ASURE: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • TOKEN_EXPIRED: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • WEAK_PASSWORD: a senha precisa ter seis caracteres ou mais.

Você pode vincular uma credencial OAuth a um usuário emitindo uma solicitação HTTP POST para o endpoint de autenticação verifyAssertion.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string O token de ID do Identity Platform da conta que você está tentando vincular à credencial.
requestUri string O URI para o qual o IDP redireciona o usuário de volta.
postBody string Contém a credencial do OAuth (um token de ID ou token de acesso) e o ID do provedor que emite a credencial.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
returnIdpCredential boolean Define se o retorno da credencial do OAuth será forçado nos seguintes erros: FEDERATED_USER_ID_ALREADY_LINKED e EMAIL_EXISTS.
Payload de resposta
Nome da propriedade Tipo Descrição
federatedId string O ID exclusivo identifica a conta do IdP.
providerId string O código do provedor vinculado (por exemplo, "google.com" para o provedor Google).
localId string O uid do usuário autenticado.
emailVerified boolean Se o e-mail de login foi verificado.
email string O e-mail da conta.
oauthIdToken string O token de ID do OIDC, se disponível.
oauthAccessToken string O token de acesso do OAuth, se disponível.
oauthTokenSecret string O secret do token OAuth 1.0, se disponível.
rawUserInfo string A resposta JSON em string que contém todos os dados do IdP correspondentes à credencial OAuth fornecida.
firstName string O nome da conta.
lastName string O sobrenome da conta.
fullName string O nome completo da conta.
displayName string Nome de exibição da conta.
photoUrl string O URL da foto da conta.
idToken string Um token de ID do Identity Platform para o usuário autenticado.
refreshToken string Um token de atualização do Identity Platform para o usuário autenticado.
expiresIn string O número de segundos em que o token de ID expira.

Exemplo de solicitação com token de ID do OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta com token de ID do OAuth

{
  "federatedId": "https://accounts.google.com/1234567890",
  "providerId": "google.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "[email protected]",
  "oauthIdToken": "[GOOGLE_ID_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57 0000\",\"gender\":\"male\", ...}"
}

Exemplo de solicitação com token de acesso OAuth

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[GCIP_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta com o token de acesso OAuth

{
  "federatedId": "http://facebook.com/1234567890",
  "providerId": "facebook.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "[email protected]",
  "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "https://scontent.xx.fbcdn.net/v/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57 0000\",\"gender\":\"male\", ...}"
}

Exemplo de solicitação com credencial do Twitter OAuth 1.0

curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[GCIP_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK. A resposta contém o token de ID do Identity Platform e o token de atualização associado ao usuário autenticado.

Exemplo de resposta com credencial OAuth do Twitter 1.0

{
  "federatedId": "http://twitter.com/1234567890",
  "providerId": "twitter.com",
  "localId": "5xwsPCWYo...",
  "emailVerified": true,
  "email": "[email protected]",
  "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]",
  "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]",
  "firstName": "John",
  "lastName": "Doe",
  "fullName": "John Doe",
  "displayName": "John Doe",
  "idToken": "[ID_TOKEN]",
  "photoUrl": "http://abs.twimg.com/sticky/...",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57 0000\",\"gender\":\"male\", ...}"
}

Códigos de erro comuns:

  • OPERATION_NOT_ALLOWED: o provedor correspondente está desativado para este projeto.
  • INVALID_IDP_RESPONSE: a credencial de autenticação fornecida é inválida ou expirou.
  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • EMAIL_EXISTS: o endereço de e-mail já está sendo usado por outra conta.
  • FEDERATED_USER_ID_ALREADY_LINKED: esta credencial já está associada a uma conta de usuário diferente.

É possível desvincular um provedor de um usuário atual emitindo uma solicitação POST HTTP para o endpoint setAccountInfo de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string O token de ID do Identity Platform da conta.
deleteProvider Lista de strings A lista dos IDs de provedor para desvincular, por exemplo: "google.com", "senha" etc.
Payload de resposta
Nome da propriedade Tipo Descrição
localId string O uid do usuário atual.
email string O e-mail da conta.
displayName string Nome de exibição da conta.
photoUrl string O URL da foto da conta.
passwordHash string Versão de hash da senha.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
emailVerified boolean Se o e-mail da conta foi verificado ou não.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"idToken":"[GCIP_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
  "localId": "huDwUz...",
  "email": "[email protected]",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "google.com",
      "federatedId": "1234567890",
      "displayName": "John Doe",
      "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg"
    },
    {
      "providerId": "password",
      "federatedId": "[email protected]"
    }
  ],
  "emailVerified": "true"
}

Códigos de erro comuns:

  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.

Enviar verificação de e-mail

É possível enviar uma verificação de e-mail para o usuário atual emitindo uma solicitação POST HTTP para o endpoint getOobConfirmationCode de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Cabeçalhos opcionais
Nome da propriedade Descrição
X-Firebase-Locale O código de idioma correspondente à localidade do usuário. Passar isso localizará a verificação de e-mail enviada ao usuário.
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
requestType string O tipo de código de confirmação a ser enviado. Sempre precisa ser "VERIFY_EMAIL".
idToken string O token de ID do Identity Platform do usuário a ser verificado.
Payload de resposta
Nome da propriedade Tipo Descrição
email string O e-mail da conta.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[GCIP_ID_TOKEN]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
  "email": "[email protected]"
}

Códigos de erro comuns:

  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • USER_NOT_FOUND: não há registros de usuário correspondentes a este identificador. O usuário pode ter sido excluído.

Confirmar a verificação por e-mail

Confirme um código de verificação de e-mail emitindo uma solicitação HTTP POST para o endpoint setAccountInfo de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
oobCode string O código de ação enviado ao e-mail do usuário para verificação de e-mail.
tenantId string O ID de locatário do usuário que verifica o e-mail. Usado apenas em multilocações.
Payload de resposta
Nome da propriedade Tipo Descrição
email string O e-mail da conta.
displayName string Nome de exibição da conta.
photoUrl string O URL da foto da conta.
passwordHash string O hash da senha.
providerUserInfo Lista de objetos JSON Lista de todos os objetos de provedor vinculados que contêm "providerId" e "federatedId".
emailVerified boolean Se o e-mail da conta foi verificado ou não.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Exemplo de resposta:

{
  "localId": "FhyStE...",
  "email": "[email protected]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[email protected]"
    }
  ]
}

Códigos de erro comuns:

  • EXPIRED_OOB_CODE: o código da ação expirou.
  • INVALID_ coB_CODE: o código de ação é inválido. Isso poderá acontecer se o código estiver incorreto, expirado ou já tiver sido usado.
  • USER_DISABLED: a conta de usuário foi desativada por um administrador.
  • EMAIL_NOT_FOUND: não há registro de usuário correspondente a este identificador. O usuário pode ter sido excluído.

Excluir conta

É possível excluir um usuário atual emitindo uma solicitação HTTP POST para o endpoint deleteAccount de autenticação.

Método: POST

Tipo de conteúdo: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
idToken string O token de ID do Identity Platform do usuário a ser excluído.
Payload de resposta
Nome da propriedade Tipo Descrição

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'

Uma solicitação bem-sucedida é indicada por um código de status HTTP 200 OK.

Códigos de erro comuns:

  • INVALID_ID_TOKEN: a credencial do usuário não é mais válida. O usuário precisa fazer login novamente.
  • USER_NOT_FOUND: não há registros de usuário correspondentes a este identificador. O usuário pode ter sido excluído.

Como processar os erros

Confira a seguir um exemplo de erro comum retornado pelo Identity Platform:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "invalid",
        "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
      }
    ],
    "code": 400,
    "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
  }
}

Consiga o código de erro do campo message.