Utiliser l'API REST

Ce document explique comment effectuer des opérations utilisateur courantes, telles que la connexion des utilisateurs et l'utilisation de jetons, à l'aide de l'API REST Identity Platform.

Avant de commencer

Pour utiliser l'API REST, vous avez besoin d'une clé API Identity Platform. Pour obtenir une clé, procédez comme suit :

  1. Accédez à la page Identity Providers (Fournisseurs d'identité) dans Cloud Console.
    Accéder à la page "Fournisseurs d'identité"

  2. Cliquez sur Informations sur la configuration de l'application.

  3. Copiez le champ apiKey.

Notez que HTTPS est requis pour tous les appels d'API.

Appeler l'API

Échanger un jeton personnalisé contre un ID 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 verifyCustomToken d'authentification.

Méthode:POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
jeton string Jeton personnalisé Identity Platform à partir duquel créer un ID et une paire de jetons d'actualisation.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId string ID de locataire auquel l'utilisateur se connecte. Utilisé uniquement dans l'architecture mutualisée.
Doit correspondre à l'élément "tenant_id" dans le jeton.
Revendications de jetons personnalisés
Propriété Name Description
alg Algorithme Doit être RS256.
iss Émetteur Adresse e-mail du compte de service de votre projet
sub Objet Adresse e-mail du compte de service de votre projet
aud Cible https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit
iat Date/Heure d'émission Heure actuelle, en secondes, depuis l'epoch UNIX.
exp Date/Heure d'expiration Durée, en secondes depuis l'époque UNIX, au bout de laquelle le jeton expire. Cette valeur peut correspondre à un maximum de 3 600 secondes après l'heure iat.
Remarque : Cette valeur ne contrôle que l'heure d'expiration du jeton personnalisé lui-même. Cependant, une fois que l'utilisateur est connecté à l'aide de signInWithCustomToken(), il reste connecté à l'appareil jusqu'à ce que sa session soit invalide ou qu'il se déconnecte.
uid ID utilisateur ID unique de l'utilisateur, comportant entre 1 et 36 caractères.
tenant_id ID du locataire ID du locataire auquel l'utilisateur se connecte.
claims (facultatif) Revendications personnalisées facultatives à inclure dans les variables auth ou request.auth des règles de sécurité.
Charge utile de la réponse
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform généré à partir du jeton personnalisé fourni.
refreshToken string Jeton d'actualisation Identity Platform généré à partir du jeton personnalisé fourni.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.

Exemple de demande

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 Identity Platform et le jeton d'actualisation associé 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, expiration, signature non valide, etc.).
  • CREDENTIAL_MISMATCH : le jeton personnalisé correspond à un autre projet GCP.

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

Pour actualiser un jeton d'ID Identity Platform, envoyez une requête HTTP POST au point de terminaison securetoken.googleapis.com.

Méthode:POST

Content-Type:application/x-www-form-urlencoded

Point de terminaison
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
grant_type string Type d'octroi du jeton d'actualisation ; toujours "refresh_token".
refresh_token string Jeton d'actualisation Identity Platform.
Charge utile de la réponse
Nom de propriété Type Description
expires_in string Nombre de secondes après lesquelles le jeton d'ID expire.
token_type chaîne Type du jeton d'actualisation ; toujours "Bearer".
refresh_token string Jeton d'actualisation Identity Platform fourni dans la requête ou nouveau jeton d'actualisation.
id_token string Jeton d'ID Identity Platform.
user_id string UID correspondant au jeton d'ID fourni.
project_id string Votre ID de projet GCP.

Exemple de demande

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'ID Identity Platform 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 : l'identifiant de l'utilisateur n'est plus valide. 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 est introuvable. Le compte utilisateur a probablement été supprimé.
  • Clé API non valide. Veuillez transmettre une clé API valide. (clé d'API fournie non valide)
  • INVALID_REFRESH_TOKEN : jeton d'actualisation fourni non valide.
  • 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 requête.
  • INVALID_GRANT_TYPE : le type d'octroi spécifié n'est pas valide.
  • MISSING_REFRESH_TOKEN : aucun jeton d'actualisation fourni.

S'inscrire avec une adresse e-mail/un mot de passe

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

Méthode:POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
email string Adresse e-mail destinée à l'utilisateur à créer.
mot de passe string Mot de passe destiné à l'utilisateur à créer.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId string ID de locataire de l'utilisateur à créer. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
idToken string Jeton d'identification Identity Platform de l'utilisateur nouvellement créé.
email string Adresse e-mail de l'utilisateur nouvellement créé.
refreshToken string Jeton d'actualisation Identity Platform de l'utilisateur nouvellement créé.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.
localId string ID de l'utilisateur nouvellement créé.

Exemple de demande

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'ID Identity Platform 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 requêtes provenant de cet appareil en raison d'une activité inhabituelle. Réessayez plus tard.

Se connecter avec une adresse e-mail/un 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 verifyPassword d'authentification.

Méthode : POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
email string Adresse e-mail avec laquelle l'utilisateur se connecte.
mot de passe string Mot de passe du compte.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId string ID de locataire auquel l'utilisateur se connecte. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform de l'utilisateur authentifié.
email string Adresse e-mail de l'utilisateur authentifié.
refreshToken string Jeton d'actualisation Identity Platform de l'utilisateur authentifié.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.
localId string ID de l'utilisateur authentifié.
registered boolean Indique si l'adresse e-mail est associée à un compte existant.

Exemple de demande

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'ID Identity Platform 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 : aucun enregistrement d'utilisateur ne correspond à cet identifiant. L'utilisateur a peut-être été supprimé.
  • INVALID_PASSWORD : le mot de passe n'est pas valide ou l'utilisateur n'en possède pas.
  • USER_DISABLED : le compte utilisateur a été désactivé par un administrateur.

Se connecter de manière anonyme

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

Méthode:POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId string ID de locataire auquel l'utilisateur se connecte. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
idToken string Jeton d'identification Identity Platform de l'utilisateur nouvellement créé.
email string Étant donné que l'utilisateur est anonyme, cette valeur doit être vide.
refreshToken string Jeton d'actualisation Identity Platform de l'utilisateur nouvellement créé.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.
localId string ID de l'utilisateur nouvellement créé.

Exemple de demande

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'ID Identity Platform 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 d'utilisateur anonyme est désactivée pour ce projet.

Se connecter avec un identifiant OAuth

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

Méthode:POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
requestUri string URI vers lequel l'IDP redirige l'utilisateur.
postBody string Contient l'identifiant OAuth (un jeton d'ID ou un jeton d'accès) et l'ID de fournisseur qui émet l'identifiant.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
returnIdpCredential boolean Indique de forcer ou non le retour de l'identifiant OAuth sur les erreurs suivantes : FEDERATED_USER_ID_ALREADY_LINKED et EMAIL_EXISTS.
tenantId string ID de locataire auquel l'utilisateur se connecte. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
federatedId string L'ID unique identifie le compte IdP.
providerId string ID de fournisseur associé (par exemple, "google.com" pour le fournisseur Google).
localId string ID de l'utilisateur authentifié.
emailVerified boolean Indique si l'adresse e-mail de connexion est validée.
email chaîne Adresse e-mail du compte.
oauthIdToken string Jeton d'ID OIDC, s'il est disponible.
oauthAccessToken string Jeton d'accès OAuth, s'il est disponible.
oauthTokenSecret string Secret du jeton OAuth 1.0, s'il est disponible.
rawUserInfo string Réponse JSON convertie en chaîne contenant toutes les données IdP qui correspondent à l'identifiant OAuth fourni.
firstName chaîne Prénom associé au compte.
lastName string Nom de famille associé au compte.
fullName string Nom complet associé au compte.
displayName string Nom à afficher du compte.
photoUrl string URL de la photo associée au compte.
idToken string Jeton d'ID Identity Platform de l'utilisateur authentifié.
refreshToken string Jeton d'actualisation Identity Platform de l'utilisateur authentifié.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.
needConfirmation boolean Indique si un autre compte ayant le même identifiant existe déjà. L'utilisateur devra se connecter au compte d'origine, puis y associer les l'identifiant actuel.

Exemple de requête avec un jeton d'ID 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'ID Identity Platform et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec un jeton d'ID 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 un 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'ID Identity Platform et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec un 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 requête avec un identifiant 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'ID Identity Platform et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec l'identifiant 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 : l'identifiant d'authentification fourni est incorrect ou a expiré.

Extraire des fournisseurs pour l'adresse

Vous pouvez consulter tous les fournisseurs associés à une adresse e-mail spécifiée en envoyant une requête HTTP POST au point de terminaison createAuthUri d'authentification.

Méthode : POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
identifier string Adresse e-mail de l'utilisateur
continueUri string URI vers lequel l'IDP redirige l'utilisateur. Dans ce cas d'utilisation, il s'agit simplement de l'URL actuelle.
tenantId string ID de locataire auquel l'utilisateur se connecte. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
allProviders Liste de chaînes Liste des fournisseurs avec lesquels l'utilisateur s'est déjà connecté.
registered boolean Indique si l'adresse e-mail est associée à un compte existant.

Exemple de demande

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'adresse e-mail.

Exemple de réponse

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

Codes d'erreur courants

  • INVALID_EMAIL : le format de l'adresse e-mail n'est pas correctement formaté.

Envoyer un e-mail de réinitialisation de 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

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
En-têtes facultatifs
Nom de propriété Description
X-Firebase-Locale Code de langue correspondant aux paramètres régionaux de l'utilisateur. La transmission de ce code permettra de localiser l'e-mail de réinitialisation du mot de passe envoyé à l'utilisateur.
Charge utile du corps de la requête
Nom de propriété Type Description
requestType string Type de code OOB à renvoyer. Doit être défini sur "PASSWORD_RESET" pour la réinitialisation du mot de passe.
email string Adresse e-mail de l'utilisateur.
tenantId string ID de locataire de l'utilisateur demandant la réinitialisation du mot de passe. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
email string Adresse e-mail de l'utilisateur.

Exemple de demande

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

  • EMAIL_NOT_FOUND : aucun enregistrement d'utilisateur ne correspond à cet identifiant. L'utilisateur a peut-être été supprimé.

Valider le code de réinitialisation de 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 resetPassword d'authentification.

Méthode:POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
oobCode string Code d'action par e-mail envoyé à l'adresse e-mail de l'utilisateur pour réinitialiser le mot de passe.
tenantId string ID de locataire de l'utilisateur demandant la réinitialisation du mot de passe. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
email string Adresse e-mail de l'utilisateur.
requestType string Type de code d'action par e-mail. Doit être "PASSWORD_RESET".

Exemple de demande

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. Cette erreur peut se produire si le code n'est pas correctement formaté, a expiré ou a déjà été utilisé.

Confirmer la réinitialisation du mot de passe

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

Méthode : POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
oobCode string Code d'action par e-mail envoyé à l'adresse e-mail de l'utilisateur pour réinitialiser le mot de passe.
newPassword string Nouveau mot de passe de l'utilisateur.
tenantId string ID de locataire de l'utilisateur demandant la réinitialisation du mot de passe. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
email string Adresse e-mail de l'utilisateur.
requestType string Type de code d'action par e-mail. Doit être "PASSWORD_RESET".

Exemple de demande

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. Cette erreur peut se produire si le code n'est pas correctement formaté, a expiré ou a déjà été utilisé.
  • USER_DISABLED : le compte utilisateur a été désactivé par un administrateur.

Modifier l'adresse e-mail

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

Méthode : POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
En-têtes facultatifs
Nom de propriété Description
X-Firebase-Locale Code de langue correspondant aux paramètres régionaux de l'utilisateur. La transmission de ce code permettra de localiser la révocation du changement d'adresse e-mail envoyée à l'utilisateur.
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform de l'utilisateur.
email string Nouvelle adresse e-mail de l'utilisateur.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation.
Charge utile de la réponse
Nom de propriété Type Description
localId string UID de l'utilisateur actuel.
email string Adresse e-mail de l'utilisateur.
passwordHash chaîne Version de hachage du mot de passe.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
idToken string Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken string Jeton d'actualisation Identity Platform.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.

Exemple de demande

curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \
-H 'Content-Type: application/json' \
--data-binary \
'{"idToken":"[GCIP_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'ID Identity Platform et le jeton d'actualisation associé à 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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.

Modifier 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 setAccountInfo d'authentification.

Méthode : POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform de l'utilisateur.
mot de passe string Nouveau mot de passe de l'utilisateur.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation.
Charge utile de la réponse
Nom de propriété Type Description
localId string UID de l'utilisateur actuel.
email string Adresse e-mail de l'utilisateur.
passwordHash string Version de hachage du mot de passe.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
idToken string Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken string Jeton d'actualisation Identity Platform.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.

Exemple de demande

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK. La réponse contient le nouveau jeton d'ID Identity Platform et le jeton d'actualisation associé à 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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • WEAK_PASSWORD : le mot de passe doit comporter au moins 6 caractères.

Mettre à jour le profil

Pour mettre à jour le profil (nom à afficher / URL de la photo) d'un utilisateur, envoyez une requête HTTP POST au point de terminaison setAccountInfo d'authentification.

Méthode:POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform de l'utilisateur.
displayName string Nouveau nom de l'utilisateur à afficher.
photoUrl string Nouvelle URL de photo de l'utilisateur.
deleteAttribute Liste de chaînes Liste des attributs à supprimer, "DISPLAY_NAME" ou "PHOTO_URL". Cela aura pour effet d'annuler ces valeurs.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation.
Charge utile de la réponse
Nom de propriété Type Description
localId string UID de l'utilisateur actuel.
email string Adresse e-mail de l'utilisateur.
displayName string Nouveau nom de l'utilisateur à afficher.
photoUrl string Nouvelle URL de photo de l'utilisateur.
passwordHash string Version de hachage du mot de passe.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
idToken string Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken string Jeton d'actualisation Identity Platform.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.

Exemple de demande

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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.

Obtenir des données utilisateur

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

Méthode : POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform du compte.
Charge utile de la réponse
Nom de propriété Type Description
users Liste d'objets JSON. Compte associé au jeton d'ID Identity Platform donné. Pour en savoir plus, consultez les informations ci-dessous.
Charge utile de la réponse (contenu du tableau users)
Nom de propriété Type Description
localId string UID de l'utilisateur actuel.
email chaîne Adresse e-mail du compte.
emailVerified boolean Indique si l'adresse e-mail du compte a été validée ou non.
displayName string Nom à afficher du compte.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
photoUrl string URL de la photo associée au compte.
passwordHash string Version de hachage du mot de passe.
passwordUpdatedAt double Horodatage en millisecondes correspondant à la dernière modification du mot de passe du compte.
validSince string Horodatage en secondes qui marque une limite, avant laquelle les jetons d'ID Identity Platform sont considérés comme révoqués.
désactivé boolean Indique si le compte est désactivé ou non.
lastLoginAt string Horodatage en millisecondes correspondant à la dernière connexion au compte.
createdAt chaîne Horodatage en millisecondes correspondant à la création du compte.
customAuth boolean Indique si le compte est authentifié par le développeur.
tenantId string ID de locataire de l'utilisateur. Renvoyé uniquement dans l'architecture mutualisée.

Exemple de demande

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

Une requête réussie est indiquée par un code d'état HTTP 200 OK. La réponse contient 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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_NOT_FOUND : aucun enregistrement d'utilisateur ne correspond à cet identifiant. L'utilisateur a peut-être été supprimé.

Pour associer une adresse e-mail/mot de passe à un utilisateur actuel, envoyez une requête HTTP POST au point de terminaison setAccountInfo d'authentification.

Méthode:POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform du compte auquel vous essayez d'associer l'identifiant.
email string Adresse e-mail à associer au compte.
mot de passe string Nouveau mot de passe du compte.
returnSecureToken string Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
Charge utile de la réponse
Nom de propriété Type Description
localId string UID de l'utilisateur actuel.
email chaîne Adresse e-mail du compte.
displayName string Nom à afficher du compte.
photoUrl string URL de la photo associée au compte.
passwordHash string Version de hachage du mot de passe.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
emailVerified boolean Indique si l'adresse e-mail du compte a été validée ou non.
idToken string Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken string Jeton d'actualisation Identity Platform.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.

Exemple de demande

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'ID Identity Platform 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 : l'identifiant de l'utilisateur n'est plus valide. L'utilisateur doit se reconnecter.
  • TOKEN_EXPIRED : l'identifiant de l'utilisateur n'est plus valide. L'utilisateur doit se reconnecter.
  • INVALID_ID_TOKEN : les identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • WEAK_PASSWORD : le mot de passe doit comporter au moins 6 caractères.

Pour associer un identifiant OAuth à un utilisateur, envoyez une requête HTTP POST au point de terminaison verifyAssertion d'authentification.

Méthode:POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform du compte auquel vous essayez d'associer l'identifiant.
requestUri string URI vers lequel l'IDP redirige l'utilisateur.
postBody string Contient l'identifiant OAuth (un jeton d'ID ou un jeton d'accès) et l'ID de fournisseur qui émet l'identifiant.
returnSecureToken booléen Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
returnIdpCredential boolean Indique de forcer ou non le retour de l'identifiant OAuth sur les erreurs suivantes : FEDERATED_USER_ID_ALREADY_LINKED et EMAIL_EXISTS.
Charge utile de la réponse
Nom de propriété Type Description
federatedId string L'ID unique identifie le compte IdP.
providerId string ID de fournisseur associé (par exemple, "google.com" pour le fournisseur Google).
localId string ID de l'utilisateur authentifié.
emailVerified boolean Indique si l'adresse e-mail de connexion est validée.
email chaîne Adresse e-mail du compte.
oauthIdToken string Jeton d'ID OIDC, s'il est disponible.
oauthAccessToken string Jeton d'accès OAuth, s'il est disponible.
oauthTokenSecret string Secret du jeton OAuth 1.0, s'il est disponible.
rawUserInfo string Réponse JSON convertie en chaîne contenant toutes les données IdP qui correspondent à l'identifiant OAuth fourni.
firstName chaîne Prénom associé au compte.
lastName string Nom de famille associé au compte.
fullName string Nom complet associé au compte.
displayName string Nom à afficher du compte.
photoUrl string URL de la photo associée au compte.
idToken string Jeton d'ID Identity Platform de l'utilisateur authentifié.
refreshToken string Jeton d'actualisation Identity Platform de l'utilisateur authentifié.
expiresIn string Nombre de secondes après lesquelles le jeton d'ID expire.

Exemple de requête avec un jeton d'ID OAuth

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

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

Exemple de réponse avec un jeton d'ID 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 un 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":"[GCIP_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'ID Identity Platform et le jeton d'actualisation associés à l'utilisateur authentifié.

Exemple de réponse avec un 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 requête avec un identifiant Twitter OAuth 1.0

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

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

Exemple de réponse avec l'identifiant 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 : l'identifiant d'authentification fourni est incorrect ou a expiré.
  • INVALID_ID_TOKEN : les identifiants 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 setAccountInfo d'authentification.

Méthode : POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform du compte.
deleteProvider Liste de chaînes La liste des ID de fournisseur à dissocier ; par exemple, "google.com", "password", etc.
Charge utile de la réponse
Nom de propriété Type Description
localId string UID de l'utilisateur actuel.
email chaîne Adresse e-mail du compte.
displayName string Nom à afficher du compte.
photoUrl string URL de la photo associée au compte.
passwordHash chaîne Version de hachage du mot de passe.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
emailVerified boolean Indique si l'adresse e-mail du compte a été validée ou non.

Exemple de demande

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

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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.

Envoyer la validation d'adresse e-mail

Vous pouvez envoyer une validation par e-mail à l'utilisateur actuel en envoyant une requête HTTP POST au point de terminaison getOobConfirmationCode d'authentification.

Méthode : POST

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
En-têtes facultatifs
Nom de propriété Description
X-Firebase-Locale Code de langue correspondant aux paramètres régionaux de l'utilisateur. La transmission de ce code permettra de localiser la validation de l'adresse e-mail envoyée à l'utilisateur.
Charge utile du corps de la requête
Nom de propriété Type Description
requestType string Type de code de confirmation à envoyer. Doit toujours être "VERIFY_EMAIL".
idToken string Jeton d'ID Identity Platform de l'utilisateur à valider.
Charge utile de la réponse
Nom de propriété Type Description
email chaîne Adresse e-mail du compte.

Exemple de demande

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

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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_NOT_FOUND : aucun enregistrement d'utilisateur ne correspond à cet identifiant. L'utilisateur a peut-être été supprimé.

Confirmer la validation d'adresse e-mail

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

Méthode : POST

Content-Type:application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
oobCode string Code d'action envoyé à l'adresse e-mail de l'utilisateur pour la validation par e-mail.
tenantId string ID de locataire de l'utilisateur validant l'adresse e-mail. Utilisé uniquement dans l'architecture mutualisée.
Charge utile de la réponse
Nom de propriété Type Description
email chaîne Adresse e-mail du compte.
displayName string Nom à afficher du compte.
photoUrl string URL de la photo associée au compte.
passwordHash string Hachage du mot de passe.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
emailVerified boolean Indique si l'adresse e-mail du compte a été validée ou non.

Exemple de demande

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. Cette erreur peut se produire si le code n'est pas correctement formaté, a expiré ou a déjà été utilisé.
  • USER_DISABLED : le compte utilisateur a été désactivé par un administrateur.
  • EMAIL_NOT_FOUND : aucun enregistrement d'utilisateur ne correspond à 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

Content-Type : application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Charge utile du corps de la requête
Nom de propriété Type Description
idToken string Jeton d'ID Identity Platform de l'utilisateur à supprimer.
Charge utile de la réponse
Nom de propriété Type Description

Exemple de demande

curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \
-H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_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 identifiants de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
  • USER_NOT_FOUND : aucun enregistrement d'utilisateur ne correspond à cet identifiant. L'utilisateur a peut-être été supprimé.

Traiter les erreurs

Toutes les erreurs renvoyées par Identity Platform utilisent le format suivant :

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

Récupérez le code d'erreur à partir du champ message.