API REST do Firebase Auth

Uso da API

É possível consultar o back-end do Firebase Auth usando uma API REST. Isso pode ser usado para várias operações, como criar novos usuários, fazer login nos já existentes e editar ou excluir esses usuários.

Neste documento, API_KEY se refere à chave de API da Web. que podem ser obtidos na configurações do projeto no Admin Console.

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

Você pode trocar um token de autenticação personalizado por um ID e token e atualização emitindo uma solicitação POST HTTP para o endpoint verifyCustomToken de autenticação.

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 Firebase Auth a partir do qual um par de tokens de ID e atualização será criado.
returnSecureToken boolean Indica se é necessário retornar um ID e atualizar o token. Precisa ser sempre verdadeiro.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Firebase Auth gerado a partir do token personalizado fornecido.
refreshToken string Um token de atualização do Firebase Auth gerado com base no 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 de ID do Firebase e o token de atualização associados com o 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 um projeto diferente do Firebase.

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

É possível atualizar um token de ID do Firebase emitindo uma solicitação POST ao 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 Um token de atualização do Firebase Auth.
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 Firebase Auth fornecido na solicitação ou um novo token de atualização.
id_token string Um token de ID do Firebase Auth.
user_id string O uid correspondente ao token de ID fornecido.
project_id string Seu ID do projeto do Firebase.

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 Firebase 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.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Firebase Auth para o usuário recém-criado.
e-mail string O e-mail do usuário recém-criado.
refreshToken string Um token de atualização do Firebase Auth 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":"[user@example.com]","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 Firebase e o token de atualização associados com a nova conta.

Exemplo de resposta

{
  "idToken": "[ID_TOKEN]",
  "email": "[user@example.com]",
  "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.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Firebase Auth para o usuário autenticado.
e-mail string O e-mail do usuário autenticado.
refreshToken string Um token de atualização do Firebase Auth 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":"[user@example.com]","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 Firebase e o token de atualização associados com a conta de e-mail/senha existente.

Exemplo de resposta

{
  "localId": "ZY1rJK0eYLg...",
  "email": "[user@example.com]",
  "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.
Payload de resposta
Nome da propriedade Tipo Descrição
idToken string Um token de ID do Firebase Auth para o usuário recém-criado.
e-mail string Como o usuário é anônimo, isso precisa estar vazio.
refreshToken string Um token de atualização do Firebase Auth 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 Firebase e o token de atualização associados com o 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.
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 Firebase Auth para o usuário autenticado.
refreshToken string Um token de atualização do Firebase Auth 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 Firebase e o token de atualização associados com o 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": "user@example.com",
  "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 Firebase e o token de atualização associados com o 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": "user@example.com",
  "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 Firebase e o token de atualização associados com o 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": "user@example.com",
  "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.
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":"[user@example.com]","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.
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":"[user@example.com]"}'

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

Exemplo de resposta:

{
 "email": "[user@example.com]"
}

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.
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": "[user@example.com]",
  "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.
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": "[user@example.com]",
  "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 Firebase Auth para o usuário.
e-mail 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 Firebase Auth para o usuário.
refreshToken string Um token de atualização do Firebase Auth.
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":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","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 Firebase e o token de atualização associados com o usuário.

Exemplo de resposta

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example2.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example2.com]"
    }
  ],
  "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 Firebase Auth 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 Firebase Auth para o usuário.
refreshToken string Um token de atualização do Firebase Auth.
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":"[FIREBASE_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 Firebase e o token de atualização associados com o usuário.

Exemplo de resposta

{
  "localId": "tRcfmLH7o2...",
  "email": "[user@example.com]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "[user@example.com]"
    }
  ],
  "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 Firebase Auth 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 Firebase Auth para o usuário.
refreshToken string Um token de atualização do Firebase Auth.
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": "user@example2.com",
  "displayName": "John Doe",
  "photoUrl": "[http://localhost:8080/img1234567890/photo.png]",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example2.com",
      "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 Firebase da conta.
Payload de resposta
Nome da propriedade Tipo Descrição
users Lista de objetos JSON A conta associada ao token de ID do Firebase 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 o token de ID do Firebase é considerada revogada.
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.

Exemplo de solicitação

curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_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": "user@example.com",
      "emailVerified": false,
      "displayName": "John Doe",
      "providerUserInfo": [
        {
          "providerId": "password",
          "displayName": "John Doe",
          "photoUrl": "http://localhost:8080/img1234567890/photo.png",
          "federatedId": "user@example.com",
          "email": "user@example.com",
          "rawId": "user@example.com",
          "screenName": "user@example.com"
        }
      ],
      "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 Firebase da conta a que você está tentando vincular a credencial.
e-mail 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 Firebase Auth para o usuário.
refreshToken string Um token de atualização do Firebase Auth.
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":"[user@example.com]","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 Firebase e o token de atualização associados ao usuário autenticado.

Exemplo de resposta

{
  "localId": "huDwUz...",
  "email": "user@example.com",
  "displayName": "John Doe",
  "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ],
  "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 Firebase da conta a que você está tentando vincular a 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 Firebase Auth para o usuário autenticado.
refreshToken string Um token de atualização do Firebase Auth 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":"[FIREBASE_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 Firebase e o token de atualização associados com o 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": "user@example.com",
  "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":"[FIREBASE_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 Firebase e o token de atualização associados com o 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": "user@example.com",
  "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":"[FIREBASE_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 Firebase e o token de atualização associados com o 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": "user@example.com",
  "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 Firebase 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":"[FIREBASE_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": "user@example.com",
  "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": "user@example.com"
    }
  ],
  "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 Firebase 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":"[FIREBASE_ID_TOKEN]"}'

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

Exemplo de resposta:

{
  "email": "user@example.com"
}

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.
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": "user@example.com",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ]
}

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 Firebase 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":"[FIREBASE_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.

Emulador do Firebase Authentication

O Pacote de emuladores locais do Firebase inclui um emulador de autenticação, que pode ser usado para: prototipagem local e testes de fluxos de autenticação. O emulador expõe o seguinte REST endpoints.

Limpar contas de usuário

Remove todas as contas no projeto especificado, independente do estado.

Método: DELETE

Endpoint

Observe que 9099 é a porta padrão do emulador do Authentication. Verificar terminal da porta que está sendo usada.

http://localhost:9099/emulator/v1/projects/{project-id}/accounts

Acessar configuração do emulador

Recebe a configuração específica do emulador para o projeto especificado.

Método: GET

Endpoint

Observe que 9099 é a porta padrão do emulador do Authentication. Verificar terminal da porta que está sendo usada.

http://localhost:9099/emulator/v1/projects/{project-id}/config
Payload de resposta
Nome da propriedade Tipo Descrição
signIn objeto Objeto de configuração signIn que contém uma única chave, allowDuplicateEmails (booleano).

Fazer patch da configuração do emulador

Atualiza a configuração específica do emulador para o projeto especificado.

Método: PATCH

Endpoint

Observe que 9099 é a porta padrão do emulador do Authentication. Verificar terminal da porta que está sendo usada.

Tipo de conteúdo: application/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
Payload do corpo da solicitação
Nome da propriedade Tipo Descrição
signIn objeto Objeto de configuração de login desejado com chave única, allowDuplicateEmails (booleano).
Payload de resposta
Nome da propriedade Tipo Descrição
signIn objeto Objeto de configuração de login pós-solicitação com uma chave única, allowDuplicateEmails (booleano).

Extrair códigos de autenticação fora de banda

Se os fluxos de autenticação que você está testando normalmente geram códigos fora de banda (por exemplo, códigos de verificação de e-mail e de redefinição de senha), o emulador armazena esses códigos internamente até como eles são usados.

Método: GET

Endpoint

Observe que 9099 é a porta padrão do emulador do Authentication. Verificar terminal da porta que está sendo usada.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
Payload de resposta
Nome da propriedade Tipo Descrição
Códigos oob matriz Uma matriz de objetos contendo detalhes de todos os códigos de confirmação pendentes. Cada objeto contém email (string), oobCode (string), oobLink (string) e requestType (string)

Recuperar códigos de verificação por SMS

Se você estiver testando fluxos de autenticação por telefone/SMS, o emulador armazenará esses códigos SMS internamente até que sejam usados.

Método: GET

Endpoint

Observe que 9099 é a porta padrão do emulador do Authentication. Verificar terminal da porta que está sendo usada.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
Payload de resposta
Nome da propriedade Tipo Descrição
Códigos de verificação matriz Uma matriz de objetos contendo detalhes de todos os códigos de verificação pendentes. Cada objeto contém phoneNumber (string) e sessionCode (string).

Resposta de erro

Formato de resposta de erro

Sempre que um erro for retornado do servidor de back-end para qualquer uma das APIs acima, a resposta terá o formato a seguir.

Exemplo de resposta

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

O código do erro é encontrado no campo de mensagem. Todos os códigos de erro acima se referem do campo "message".