API REST d'authentification Firebase

Utilisation de l'API

Vous pouvez interroger le backend Firebase Auth via une API REST. Cela peut être utilisé pour diverses opérations telles que la création de nouveaux utilisateurs, la connexion d'utilisateurs existants et la modification ou la suppression de ces utilisateurs.

Dans tout ce document, API_KEY fait référence à la clé API Web, qui peut être obtenue sur la page des paramètres du projet dans votre console d'administration.

Échangez un jeton personnalisé contre un identifiant et un jeton d'actualisation

Vous pouvez échanger un jeton d'authentification personnalisé contre un ID et un jeton d'actualisation en envoyant une requête HTTP POST au point de terminaison Auth verifyCustomToken .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
jeton chaîne Un jeton personnalisé Firebase Auth à partir duquel créer une paire de jetons d'identification et d'actualisation.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
Charge utile de réponse
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase généré à partir du jeton personnalisé fourni.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth généré à partir du jeton personnalisé fourni.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.

Demande d'échantillon

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'ID Firebase et le jeton d'actualisation associés au jeton personnalisé.

Exemple de réponse

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

Codes d'erreur courants

  • INVALID_CUSTOM_TOKEN : le format du jeton personnalisé est incorrect ou le jeton n'est pas valide pour une raison quelconque (par exemple, signature expirée, non valide, etc.)
  • CREDENTIAL_MISMATCH : le jeton personnalisé correspond à un autre projet Firebase.

Échanger un jeton d'actualisation contre un jeton d'identification

Vous pouvez actualiser un jeton d'identification Firebase en envoyant une requête HTTP POST au point de terminaison securetoken.googleapis.com .

Méthode : POST

Type de contenu : application/x-www-form-urlencoded

Charge utile du corps de la demande
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
type_de_subvention chaîne Le type d'octroi du jeton d'actualisation, toujours « refresh_token ».
rafraîchir_token chaîne Un jeton d'actualisation Firebase Auth.
Charge utile de réponse
Nom de la propriété Taper Description
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.
type_jeton chaîne Le type du jeton d'actualisation, toujours "Bearer".
rafraîchir_token chaîne Le jeton d'actualisation Firebase Auth fourni dans la demande ou un nouveau jeton d'actualisation.
id_token chaîne Un jeton d'identification d'authentification Firebase.
ID de l'utilisateur chaîne L'uid correspondant au jeton d'identification fourni.
id_projet chaîne Votre ID de projet Firebase.

Demande d'échantillon

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]'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le nouveau jeton d'identification Firebase et le jeton d'actualisation.

Exemple de réponse

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

Codes d'erreur courants

  • TOKEN_EXPIRED : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.
  • USER_NOT_FOUND : L'utilisateur correspondant au jeton d'actualisation n'a pas été trouvé. Il est probable que l'utilisateur ait été supprimé.
  • Clé API non valide. Veuillez transmettre une clé API valide. (clé API non valide fournie)
  • INVALID_REFRESH_TOKEN : un jeton d'actualisation non valide est fourni.
  • Charge utile JSON non valide reçue. Nom inconnu \"refresh_tokens\" : Impossible de lier le paramètre de requête. Le champ « refresh_tokens » est introuvable dans le message de demande.
  • INVALID_GRANT_TYPE : le type d'octroi spécifié n'est pas valide.
  • MISSING_REFRESH_TOKEN : aucun jeton d'actualisation fourni.
  • PROJECT_NUMBER_MISMATCH : le numéro de projet du jeton d'actualisation ne correspond pas à celui de la clé API fournie.

Inscrivez-vous avec email / mot de passe

Vous pouvez créer un nouvel utilisateur de messagerie et de mot de passe en envoyant une requête HTTP POST au point de terminaison Auth signupNewUser .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
e-mail chaîne L'e-mail que l'utilisateur doit créer.
mot de passe chaîne Le mot de passe que l'utilisateur doit créer.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
Charge utile de réponse
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur nouvellement créé.
e-mail chaîne L'e-mail de l'utilisateur nouvellement créé.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth pour l'utilisateur nouvellement créé.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.
identifiant local chaîne L'uid de l'utilisateur nouvellement créé.

Demande d'échantillon

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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés au nouveau compte.

Exemple de réponse

{
  "idToken": "[ID_TOKEN]",
  "email": "[user@example.com]",
  "refreshToken": "[REFRESH_TOKEN]",
  "expiresIn": "3600",
  "localId": "tRcfmLH7..."
}

Codes d'erreur courants

  • EMAIL_EXISTS : L'adresse e-mail est déjà utilisée par un autre compte.
  • OPERATION_NOT_ALLOWED : la connexion par mot de passe est désactivée pour ce projet.
  • TOO_MANY_ATTEMPTS_TRY_LATER : Nous avons bloqué toutes les demandes provenant de cet appareil en raison d'une activité inhabituelle. Réessayez plus tard.

Connectez-vous avec email / mot de passe

Vous pouvez connecter un utilisateur avec une adresse e-mail et un mot de passe en envoyant une requête HTTP POST au point de terminaison Auth verifyPassword .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
e-mail chaîne L'e-mail avec lequel l'utilisateur se connecte.
mot de passe chaîne Le mot de passe du compte.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
Charge utile de réponse
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur authentifié.
e-mail chaîne L'e-mail de l'utilisateur authentifié.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth pour l'utilisateur authentifié.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.
identifiant local chaîne L’uid de l’utilisateur authentifié.
inscrit booléen Si l'e-mail concerne un compte existant.

Demande d'échantillon

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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés au compte de messagerie/mot de passe existant.

Exemple de réponse

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

Codes d'erreur courants

  • EMAIL_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
  • INVALID_PASSWORD : Le mot de passe n'est pas valide ou l'utilisateur n'a pas de mot de passe.
  • USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.

Connectez-vous de manière anonyme

Vous pouvez connecter un utilisateur de manière anonyme en envoyant une requête HTTP POST au point de terminaison Auth signupNewUser .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
Charge utile de réponse
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur nouvellement créé.
e-mail chaîne Puisque l'utilisateur est anonyme, ce champ doit être vide.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth pour l'utilisateur nouvellement créé.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.
identifiant local chaîne L'uid de l'utilisateur nouvellement créé.

Demande d'échantillon

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur anonyme.

Exemple de réponse

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

Codes d'erreur courants

  • OPERATION_NOT_ALLOWED : la connexion des utilisateurs anonymes est désactivée pour ce projet.

Connectez-vous avec les informations d'identification OAuth

Vous pouvez connecter un utilisateur avec des informations d'identification OAuth en envoyant une requête HTTP POST au point de terminaison Auth verifyAssertion .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
requêteUri chaîne L'URI vers lequel l'IDP redirige l'utilisateur.
postCorps chaîne Contient les informations d'identification OAuth (un jeton d'identification ou un jeton d'accès) et l'ID du fournisseur qui émet les informations d'identification.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
returnIdpCredential booléen S'il faut forcer le retour des informations d'identification OAuth sur les erreurs suivantes : FEDERATED_USER_ID_ALREADY_LINKED et EMAIL_EXISTS.
Charge utile de réponse
Nom de la propriété Taper Description
federatedId chaîne L'ID unique identifie le compte IdP.
ID du fournisseur chaîne L'ID du fournisseur lié (par exemple "google.com" pour le fournisseur Google).
identifiant local chaîne L’uid de l’utilisateur authentifié.
Email verifié booléen Si l'e-mail de connexion est vérifié.
e-mail chaîne L'email du compte.
oauthIdToken chaîne Le jeton d’identification OIDC si disponible.
oauthAccessToken chaîne Le jeton d'accès OAuth si disponible.
oauthTokenSecret chaîne Le secret du jeton OAuth 1.0, si disponible.
infoutilisateurbrut chaîne Réponse JSON sous forme de chaîne contenant toutes les données IdP correspondant aux informations d'identification OAuth fournies.
prénom chaîne Le prénom du compte.
nom de famille chaîne Le nom de famille du compte.
nom et prénom chaîne Le nom complet du compte.
Afficher un nom chaîne Le nom d’affichage du compte.
URL de la photo chaîne L'URL de la photo du compte.
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur authentifié.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth pour l'utilisateur authentifié.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.
besoinConfirmation booléen Si un autre compte avec les mêmes informations d'identification existe déjà. L'utilisateur devra se connecter au compte d'origine, puis y associer les informations d'identification actuelles.

Exemple de requête avec jeton d'identification 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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec le jeton d'identification 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\", ...}"
}

Exemple de requête avec jeton d'accès 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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec le jeton d'accès 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\", ...}"
}

Exemple de demande avec les informations d'identification 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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec les informations d'identification Twitter OAuth 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\", ...}"
}

Codes d'erreur courants

  • OPERATION_NOT_ALLOWED : le fournisseur correspondant est désactivé pour ce projet.
  • INVALID_IDP_RESPONSE : les informations d'identification d'authentification fournies sont mal formées ou ont expiré.

Récupérer les fournisseurs pour le courrier électronique

Vous pouvez rechercher tous les fournisseurs associés à un e-mail spécifié en envoyant une requête HTTP POST au point de terminaison Auth createAuthUri .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
identifiant chaîne Adresse e-mail de l'utilisateur
continuerUri chaîne L'URI vers lequel l'IDP redirige l'utilisateur. Pour ce cas d'utilisation, il s'agit uniquement de l'URL actuelle.
Charge utile de réponse
Nom de la propriété Taper Description
tous les fournisseurs Liste des chaînes La liste des fournisseurs avec lesquels l'utilisateur s'est précédemment connecté.
inscrit booléen Si l'e-mail concerne un compte existant

Demande d'échantillon

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]"}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient la liste des fournisseurs associés à l'e-mail.

Exemple de réponse

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

Codes d'erreur courants

  • INVALID_EMAIL : L'adresse e-mail est mal formatée.

Envoyer un e-mail de réinitialisation du mot de passe

Vous pouvez envoyer un e-mail de réinitialisation de mot de passe en envoyant une requête HTTP POST au point de terminaison Auth getOobConfirmationCode .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
En-têtes facultatifs
Nom de la propriété Description
X-Firebase-Locale Le code de langue correspondant aux paramètres régionaux de l'utilisateur. En passant ceci, vous localiserez l'e-mail de réinitialisation du mot de passe envoyé à l'utilisateur.
Demander la charge utile du corps
Nom de la propriété Taper Description
type de demande chaîne Le type de code OOB à renvoyer. Doit être "PASSWORD_RESET" pour la réinitialisation du mot de passe.
e-mail chaîne Adresse e-mail de l'utilisateur.
Charge utile de réponse
Nom de la propriété Taper Description
e-mail chaîne Adresse e-mail de l'utilisateur.

Demande d'échantillon

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]"}'

Une demande réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

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

Codes d'erreur courants

  • EMAIL_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.

Vérifier le code de réinitialisation du mot de passe

Vous pouvez vérifier un code de réinitialisation de mot de passe en envoyant une requête HTTP POST au point de terminaison Auth resetPassword .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
oobCode chaîne Le code d'action de courrier électronique envoyé à l'e-mail de l'utilisateur pour réinitialiser le mot de passe.
Charge utile de réponse
Nom de la propriété Taper Description
e-mail chaîne Adresse e-mail de l'utilisateur.
type de demande chaîne Type du code d'action de l'e-mail. Doit être "PASSWORD_RESET".

Demande d'échantillon

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

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

Codes d'erreur courants

  • OPERATION_NOT_ALLOWED : la connexion par mot de passe est désactivée pour ce projet.
  • EXPIRED_OOB_CODE : le code d'action a expiré.
  • INVALID_OOB_CODE : le code d'action n'est pas valide. Cela peut se produire si le code est mal formé, a expiré ou a déjà été utilisé.

Confirmer la réinitialisation du mot de passe

Vous pouvez appliquer une modification de réinitialisation de mot de passe en envoyant une requête HTTP POST au point de terminaison Auth resetPassword .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
oobCode chaîne Le code d'action de courrier électronique envoyé à l'e-mail de l'utilisateur pour réinitialiser le mot de passe.
nouveau mot de passe chaîne Le nouveau mot de passe de l'utilisateur.
Charge utile de réponse
Nom de la propriété Taper Description
e-mail chaîne Adresse e-mail de l'utilisateur.
type de demande chaîne Type du code d'action de l'e-mail. Doit être "PASSWORD_RESET".

Demande d'échantillon

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]"}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

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

Codes d'erreur courants

  • OPERATION_NOT_ALLOWED : la connexion par mot de passe est désactivée pour ce projet.
  • EXPIRED_OOB_CODE : le code d'action a expiré.
  • INVALID_OOB_CODE : le code d'action n'est pas valide. Cela peut se produire si le code est mal formé, a expiré ou a déjà été utilisé.
  • USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.

Changer l'e-mail

Vous pouvez modifier l'adresse e-mail d'un utilisateur en envoyant une requête HTTP POST au point de terminaison Auth setAccountInfo .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
En-têtes facultatifs
Nom de la propriété Description
X-Firebase-Locale Le code de langue correspondant aux paramètres régionaux de l'utilisateur. Si vous le transmettez, la révocation de la modification de l'e-mail envoyée à l'utilisateur sera localisée.
Demander la charge utile du corps
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur.
e-mail chaîne Le nouvel e-mail de l'utilisateur.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation.
Charge utile de réponse
Nom de la propriété Taper Description
identifiant local chaîne L'uid de l'utilisateur actuel.
e-mail chaîne Adresse e-mail de l'utilisateur.
mot de passeHash chaîne Version de hachage du mot de passe.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
jeton d'identification chaîne Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.

Demande d'échantillon

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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le nouveau jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur.

Exemple de réponse

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

Codes d'erreur courants

  • EMAIL_EXISTS : L'adresse e-mail est déjà utilisée par un autre compte.
  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.

Changer le mot de passe

Vous pouvez modifier le mot de passe d'un utilisateur en envoyant une requête HTTP POST au point de terminaison Auth setAccountInfo .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur.
mot de passe chaîne Nouveau mot de passe de l'utilisateur.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation.
Charge utile de réponse
Nom de la propriété Taper Description
identifiant local chaîne L'uid de l'utilisateur actuel.
e-mail chaîne Adresse e-mail de l'utilisateur.
mot de passeHash chaîne Version de hachage du mot de passe.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
jeton d'identification chaîne Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.

Demande d'échantillon

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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le nouveau jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur.

Exemple de réponse

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

Codes d'erreur courants

  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • WEAK_PASSWORD : Le mot de passe doit comporter 6 caractères ou plus.

Mettre à jour le profil

Vous pouvez mettre à jour le profil d'un utilisateur (nom d'affichage/URL de la photo) en envoyant une requête HTTP POST au point de terminaison Auth setAccountInfo .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur.
Afficher un nom chaîne Nouveau nom d'affichage de l'utilisateur.
URL de la photo chaîne Nouvelle URL de la photo de l'utilisateur.
deleteAttribute Liste des chaînes Liste des attributs à supprimer, "DISPLAY_NAME" ou "PHOTO_URL". Cela annulera ces valeurs.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation.
Charge utile de réponse
Nom de la propriété Taper Description
identifiant local chaîne L'uid de l'utilisateur actuel.
e-mail chaîne Adresse e-mail de l'utilisateur.
Afficher un nom chaîne Nouveau nom d'affichage de l'utilisateur.
URL de la photo chaîne Nouvelle URL de la photo de l'utilisateur.
mot de passeHash chaîne Version de hachage du mot de passe.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
jeton d'identification chaîne Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.

Demande d'échantillon

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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

{
  "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"
}

Codes d'erreur courants

  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.

Obtenir les données utilisateur

Vous pouvez obtenir les données d'un utilisateur en envoyant une requête HTTP POST au point de terminaison Auth getAccountInfo .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
jeton d'identification chaîne Le jeton d'identification Firebase du compte.
Charge utile de réponse
Nom de la propriété Taper Description
utilisateurs Liste des objets JSON Le compte associé au jeton d'identification Firebase donné. Vérifiez ci-dessous pour plus de détails.
Charge utile de réponse (contenu du tableau users )
Nom de la propriété Taper Description
identifiant local chaîne L'uid de l'utilisateur actuel.
e-mail chaîne L'email du compte.
Email verifié booléen Si l'e-mail du compte a été vérifié ou non.
Afficher un nom chaîne Le nom d’affichage du compte.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
URL de la photo chaîne L'URL de la photo du compte.
mot de passeHash chaîne Version de hachage du mot de passe.
mot de passeMise à jourà double L'horodatage, en millisecondes, de la dernière modification du mot de passe du compte.
valideDepuis chaîne L'horodatage, en secondes, qui marque une limite avant laquelle les jetons d'identification Firebase sont considérés comme révoqués.
désactivé booléen Que le compte soit désactivé ou non.
dernière connexion à chaîne L'horodatage, en millisecondes, de la dernière connexion du compte.
créé à chaîne L'horodatage, en millisecondes, de la création du compte.
authentification personnalisée booléen Si le compte est authentifié par le développeur.

Demande d'échantillon

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contiendra toutes les informations utilisateur associées au compte.

Exemple de réponse

{
  "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
    }
  ]
}

Codes d'erreur courants

  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.

Vous pouvez lier un e-mail/un mot de passe à un utilisateur actuel en envoyant une requête HTTP POST au point de terminaison Auth setAccountInfo .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
jeton d'identification chaîne Le jeton d'identification Firebase du compte auquel vous essayez de lier les informations d'identification.
e-mail chaîne L'e-mail pour créer un lien vers le compte.
mot de passe chaîne Le nouveau mot de passe du compte.
retourSecureToken chaîne Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
Charge utile de réponse
Nom de la propriété Taper Description
identifiant local chaîne L'uid de l'utilisateur actuel.
e-mail chaîne L'email du compte.
Afficher un nom chaîne Le nom d’affichage du compte.
URL de la photo chaîne L'URL de la photo du compte.
mot de passeHash chaîne Version de hachage du mot de passe.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
Email verifié booléen Si l'e-mail du compte a été vérifié ou non.
jeton d'identification chaîne Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.

Demande d'échantillon

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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse

{
  "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
}

Codes d'erreur courants

  • CREDENTIAL_TOO_OLD_LOGIN_AGAIN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • TOKEN_EXPIRED : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • WEAK_PASSWORD : Le mot de passe doit comporter 6 caractères ou plus.

Vous pouvez lier un identifiant OAuth à un utilisateur en envoyant une requête HTTP POST au point de terminaison Auth verifyAssertion .

Méthode : POST

Type de contenu : application/json

Charge utile du corps de la demande
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
du point de terminaison
Nom de la propriété Taper Description
jeton d'identification chaîne Le jeton d'identification Firebase du compte auquel vous essayez de lier les informations d'identification.
requêteUri chaîne L'URI vers lequel l'IDP redirige l'utilisateur.
postCorps chaîne Contient les informations d'identification OAuth (un jeton d'identification ou un jeton d'accès) et l'ID du fournisseur qui émet les informations d'identification.
retourSecureToken booléen Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai.
returnIdpCredential booléen S'il faut forcer le retour des informations d'identification OAuth sur les erreurs suivantes : FEDERATED_USER_ID_ALREADY_LINKED et EMAIL_EXISTS.
Charge utile de réponse
Nom de la propriété Taper Description
federatedId chaîne L'ID unique identifie le compte IdP.
ID du fournisseur chaîne L'ID du fournisseur lié (par exemple "google.com" pour le fournisseur Google).
identifiant local chaîne L’uid de l’utilisateur authentifié.
Email verifié booléen Si l'e-mail de connexion est vérifié.
e-mail chaîne L'email du compte.
oauthIdToken chaîne Le jeton d’identification OIDC si disponible.
oauthAccessToken chaîne Le jeton d'accès OAuth si disponible.
oauthTokenSecret chaîne Le secret du jeton OAuth 1.0, si disponible.
infoutilisateurbrut chaîne Réponse JSON sous forme de chaîne contenant toutes les données IdP correspondant aux informations d'identification OAuth fournies.
prénom chaîne Le prénom du compte.
nom de famille chaîne Le nom de famille du compte.
nom et prénom chaîne Le nom complet du compte.
Afficher un nom chaîne Le nom d’affichage du compte.
URL de la photo chaîne L'URL de la photo du compte.
jeton d'identification chaîne Un jeton d'identification d'authentification Firebase pour l'utilisateur authentifié.
jeton d'actualisation chaîne Un jeton d'actualisation Firebase Auth pour l'utilisateur authentifié.
expire dans chaîne Nombre de secondes au bout desquelles le jeton d'identification expire.

Exemple de requête avec jeton d'identification 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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec le jeton d'identification 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\", ...}"
}

Exemple de requête avec jeton d'accès 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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec le jeton d'accès 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\", ...}"
}

Exemple de demande avec les informations d'identification 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}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK . La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec les informations d'identification Twitter OAuth 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\", ...}"
}

Codes d'erreur courants

  • OPERATION_NOT_ALLOWED : le fournisseur correspondant est désactivé pour ce projet.
  • INVALID_IDP_RESPONSE : les informations d'identification d'authentification fournies sont mal formées ou ont expiré.
  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • EMAIL_EXISTS : L'adresse e-mail est déjà utilisée par un autre compte.
  • FEDERATED_USER_ID_ALREADY_LINKED : cet identifiant est déjà associé à un autre compte utilisateur.

Vous pouvez dissocier un fournisseur d'un utilisateur actuel en envoyant une requête HTTP POST au point de terminaison Auth setAccountInfo .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
jeton d'identification chaîne Le jeton d'identification Firebase du compte.
supprimerProvider Liste des chaînes La liste des identifiants de fournisseur à dissocier, par exemple : "google.com", "mot de passe", etc.
Charge utile de réponse
Nom de la propriété Taper Description
identifiant local chaîne L'uid de l'utilisateur actuel.
e-mail chaîne L'email du compte.
Afficher un nom chaîne Le nom d’affichage du compte.
URL de la photo chaîne L'URL de la photo du compte.
mot de passeHash chaîne Version de hachage du mot de passe.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
Email verifié booléen Si l'e-mail du compte a été vérifié ou non.

Demande d'échantillon

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]"]}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

{
  "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"
}

Codes d'erreur courants

  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.

Envoyer une vérification par e-mail

Vous pouvez envoyer une vérification par e-mail pour l'utilisateur actuel en envoyant une requête HTTP POST au point de terminaison Auth getOobConfirmationCode .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
En-têtes facultatifs
Nom de la propriété Description
X-Firebase-Locale Le code de langue correspondant aux paramètres régionaux de l'utilisateur. Si vous réussissez, vous localiserez l'e-mail de vérification envoyé à l'utilisateur.
Demander la charge utile du corps
Nom de la propriété Taper Description
type de demande chaîne Le type de code de confirmation à envoyer. Doit toujours être "VERIFY_EMAIL".
jeton d'identification chaîne Jeton d'identification Firebase de l'utilisateur à vérifier.
Charge utile de réponse
Nom de la propriété Taper Description
e-mail chaîne L'email du compte.

Demande d'échantillon

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]"}'

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

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

Codes d'erreur courants

  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.

Confirmer la vérification par e-mail

Vous pouvez confirmer un code de vérification d'e-mail en envoyant une requête HTTP POST au point de terminaison Auth setAccountInfo .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
oobCode chaîne Le code d'action envoyé à l'adresse e-mail de l'utilisateur pour vérification de l'e-mail.
Charge utile de réponse
Nom de la propriété Taper Description
e-mail chaîne L'email du compte.
Afficher un nom chaîne Le nom d’affichage du compte.
URL de la photo chaîne L'URL de la photo du compte.
mot de passeHash chaîne Le hachage du mot de passe.
fournisseurUserInfo Liste des objets JSON Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId".
Email verifié booléen Si l'e-mail du compte a été vérifié ou non.

Demande d'échantillon

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Exemple de réponse

{
  "localId": "FhyStE...",
  "email": "user@example.com",
  "passwordHash": "...",
  "providerUserInfo": [
    {
      "providerId": "password",
      "federatedId": "user@example.com"
    }
  ]
}

Codes d'erreur courants

  • EXPIRED_OOB_CODE : le code d'action a expiré.
  • INVALID_OOB_CODE : le code d'action n'est pas valide. Cela peut se produire si le code est mal formé, a expiré ou a déjà été utilisé.
  • USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.
  • EMAIL_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.

Supprimer le compte

Vous pouvez supprimer un utilisateur actuel en envoyant une requête HTTP POST au point de terminaison Auth deleteAccount .

Méthode : POST

Type de contenu : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Charge utile du corps de la demande
Nom de la propriété Taper Description
jeton d'identification chaîne Le jeton d'identification Firebase de l'utilisateur à supprimer.
Charge utile de réponse
Nom de la propriété Taper Description

Demande d'échantillon

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK .

Codes d'erreur courants

  • INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.

Émulateur d'authentification Firebase

La suite Firebase Local Emulator comprend un émulateur d'authentification , qui peut être utilisé pour le prototypage local et le test des flux d'authentification. L'émulateur expose les points de terminaison REST suivants.

Effacer les comptes d'utilisateurs

Supprimez tous les comptes du projet spécifié, quel que soit leur état.

Méthode : SUPPRIMER

Point de terminaison

Notez que 9099 est le port par défaut de l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réellement utilisé.

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

Obtenir la configuration de l'émulateur

Obtenez la configuration spécifique à l'émulateur pour le projet spécifié.

Méthode : OBTENIR

Point de terminaison

Notez que 9099 est le port par défaut de l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réellement utilisé.

http://localhost:9099/emulator/v1/projects/{project-id}/config
Charge utile de réponse
Nom de la propriété Taper Description
se connecter objet Objet de configuration signIn contenant une seule clé, allowDuplicateEmails (booléen).

Configuration de l'émulateur de correctifs

Mettez à jour la configuration spécifique à l’émulateur pour le projet spécifié.

Méthode : PATCH

Point de terminaison

Notez que 9099 est le port par défaut de l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réellement utilisé.

Type de contenu : application/json

http://localhost:9099/emulator/v1/projects/{project-id}/config
Charge utile du corps de la demande
Nom de la propriété Taper Description
se connecter objet Objet de configuration Signin souhaité avec une seule touche, allowDuplicateEmails (booléen).
Response charge utile
Nom de la propriété Taper Description
se connecter objet Objet de configuration de la signature post-request avec une seule touche, allowDuplicateEmails (boolean).

Récupérer les codes d'authentification hors bande

Si les flux d'authentification que vous testez généreraient normalement des codes hors bande (par exemple, les codes de vérification par e-mail, les codes de réinitialisation du mot de passe), l'émulateur stocke ces codes en interne jusqu'à ce qu'ils soient utilisés.

Méthode: obtenir

Point de terminaison

Notez que 9099 est le port par défaut pour l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réel utilisé.

http://localhost:9099/emulator/v1/projects/{project-id}/oobCodes
Réponse charge utile
Nom de la propriété Taper Description
oobcodes tableau Un tableau d'objets contenant des détails de tous les codes de confirmation en attente. Chaque objet contient email (string), oobCode (string), oobLink (string) et requestType (string)

Récupérer les codes de vérification SMS

Si vous testez les flux d'authentification téléphonique / SMS, l'émulateur stocke ces codes SMS en interne jusqu'à ce qu'ils soient utilisés.

Méthode: obtenir

Point de terminaison

Notez que 9099 est le port par défaut pour l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réel utilisé.

http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodes
Réponse Télélée utile
Nom de la propriété Taper Description
codes de vérification tableau Un tableau d'objets contenant des détails de tous les codes de vérification en attente. Chaque objet contient phoneNumber (String) et sessionCode (String).

Réponse d'erreur

Format de réponse d'erreur

Chaque fois qu'une erreur est renvoyée du serveur backend pour l'une des API ci-dessus, la réponse aura le format suivant.

Exemple de réponse

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

Le code d'erreur est obtenu à partir du champ Message. Tous les codes d'erreur ci-dessus se réfèrent au contenu du champ de message.