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 Fournisseurs d'identité dans la console Google Cloud.
    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 signInWithCustomToken.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
jeton chaîne Jeton personnalisé Identity Platform à partir duquel créer un ID et une paire de jetons d'actualisation.
returnSecureToken boolean Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId chaîne 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
Valeur Nom 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 chaîne Jeton d'ID Identity Platform généré à partir du jeton personnalisé fourni.
refreshToken chaîne Jeton d'actualisation Identity Platform généré à partir du jeton personnalisé fourni.
expiresIn chaîne 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 Google Cloud.

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

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

Méthode : POST

Content-Type : (Type-contenu) application/x-www-form-urlencoded

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

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'attribution 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.

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

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

Méthode : POST

Content-Type : (Type-contenu) = 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 la propriété Type Description
email chaîne Adresse e-mail destinée à l'utilisateur à créer.
mot de passe chaîne Mot de passe destiné à l'utilisateur à créer.
returnSecureToken boolean Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId chaîne 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 chaîne Jeton d'identification Identity Platform de l'utilisateur nouvellement créé.
email chaîne Adresse e-mail de l'utilisateur nouvellement créé.
refreshToken chaîne Jeton d'actualisation Identity Platform de l'utilisateur nouvellement créé.
expiresIn chaîne Nombre de secondes après lesquelles le jeton d'ID expire.
localId chaîne 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 POST HTTP au point de terminaison verifyPassword d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
email chaîne Adresse e-mail avec laquelle l'utilisateur se connecte.
mot de passe chaîne Mot de passe du compte.
returnSecureToken boolean Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId chaîne 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 chaîne Jeton d'ID Identity Platform de l'utilisateur authentifié.
email chaîne Adresse e-mail de l'utilisateur authentifié.
refreshToken chaîne Jeton d'actualisation Identity Platform de l'utilisateur authentifié.
expiresIn chaîne Nombre de secondes après lesquelles le jeton d'ID expire.
localId chaîne 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 de manière anonyme en envoyant une requête POST HTTP au point de terminaison signupNewUser d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
returnSecureToken boolean Indique s'il faut renvoyer un ID et un jeton d'actualisation. Doit toujours être défini sur "true".
tenantId chaîne 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 chaîne Jeton d'identification Identity Platform de l'utilisateur nouvellement créé.
email chaîne Étant donné que l'utilisateur est anonyme, cette valeur doit être vide.
refreshToken chaîne Jeton d'actualisation Identity Platform de l'utilisateur nouvellement créé.
expiresIn chaîne Nombre de secondes après lesquelles le jeton d'ID expire.
localId chaîne 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 un identifiant OAuth en envoyant une requête POST HTTP au point de terminaison verifyAssertion d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
requestUri chaîne URI vers lequel l'IDP redirige l'utilisateur.
postBody chaîne Contient l'identifiant OAuth (un jeton d'ID ou un jeton d'accès) et l'ID de fournisseur qui émet l'identifiant.
returnSecureToken boolean 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 chaîne 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 chaîne L'ID unique identifie le compte IdP.
providerId chaîne ID de fournisseur associé (par exemple, "google.com" pour le fournisseur Google).
localId chaîne 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 chaîne Jeton d'ID OIDC, s'il est disponible.
oauthAccessToken chaîne Jeton d'accès OAuth, s'il est disponible.
oauthTokenSecret chaîne Secret du jeton OAuth 1.0, s'il est disponible.
rawUserInfo chaîne 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 chaîne Nom de famille associé au compte.
fullName chaîne Nom complet associé au compte.
displayName chaîne Nom à afficher du compte.
photoUrl chaîne URL de la photo associée au compte.
idToken chaîne Jeton d'ID Identity Platform de l'utilisateur authentifié.
refreshToken chaîne Jeton d'actualisation Identity Platform de l'utilisateur authentifié.
expiresIn chaîne 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 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 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 l'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 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

Pour rechercher tous les fournisseurs associés à une adresse e-mail spécifiée, envoyez une requête POST HTTP au point de terminaison createAuthUri d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
identifier chaîne Adresse e-mail de l'utilisateur
continueUri chaîne URI vers lequel l'IDP redirige l'utilisateur. Dans ce cas d'utilisation, il s'agit simplement de l'URL actuelle.
tenantId chaîne 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 du mot de passe en envoyant une requête POST HTTP au point de terminaison getOobConfirmationCode d'authentification.

Méthode : POST

Content-Type : (Type-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 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 chaîne Type de code OOB à renvoyer. Doit être défini sur "PASSWORD_RESET" pour la réinitialisation du mot de passe.
email chaîne Adresse e-mail de l'utilisateur.
tenantId chaîne 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 chaîne 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 le code de réinitialisation d'un mot de passe en envoyant une requête POST HTTP au point de terminaison resetPassword d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
oobCode chaîne Code d'action par e-mail envoyé à l'adresse e-mail de l'utilisateur pour réinitialiser le mot de passe.
tenantId chaîne 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 chaîne Adresse e-mail de l'utilisateur.
requestType chaîne 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 réinitialisation du mot de passe en envoyant une requête POST HTTP au point de terminaison resetPassword d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
oobCode chaîne Code d'action par e-mail envoyé à l'adresse e-mail de l'utilisateur pour réinitialiser le mot de passe.
newPassword chaîne Nouveau mot de passe de l'utilisateur.
tenantId chaîne 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 chaîne Adresse e-mail de l'utilisateur.
requestType chaîne 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 POST HTTP au point de terminaison setAccountInfo d'authentification.

Méthode : POST

Content-Type : (Type-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 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 chaîne Jeton d'ID Identity Platform de l'utilisateur.
email chaîne Nouvelle adresse e-mail de l'utilisateur.
returnSecureToken boolean 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 chaîne UID de l'utilisateur actuel.
email chaîne 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 chaîne Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken chaîne Jeton d'actualisation Identity Platform.
expiresIn chaîne 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

Pour modifier le mot de passe d'un utilisateur, envoyez une requête POST HTTP au point de terminaison setAccountInfo d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne Jeton d'ID Identity Platform de l'utilisateur.
mot de passe chaîne Nouveau mot de passe de l'utilisateur.
returnSecureToken boolean 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 chaîne UID de l'utilisateur actuel.
email chaîne 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 chaîne Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken chaîne Jeton d'actualisation Identity Platform.
expiresIn chaîne 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

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

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne Jeton d'ID Identity Platform de l'utilisateur.
displayName chaîne Nouveau nom de l'utilisateur à afficher.
photoUrl chaîne 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 boolean 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 chaîne UID de l'utilisateur actuel.
email chaîne Adresse e-mail de l'utilisateur.
displayName chaîne Nouveau nom de l'utilisateur à afficher.
photoUrl chaîne Nouvelle URL de photo 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 chaîne Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken chaîne Jeton d'actualisation Identity Platform.
expiresIn chaîne 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

Pour obtenir les données d'un utilisateur, envoyez une requête POST HTTP au point de terminaison getAccountInfo d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne 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 chaîne 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 chaîne Nom à afficher du compte.
providerUserInfo Liste d'objets JSON. Liste de tous les objets de fournisseur associés contenant "providerId" et "federatedId".
photoUrl chaîne URL de la photo associée au compte.
passwordHash chaîne Version de hachage du mot de passe.
passwordUpdatedAt double Horodatage en millisecondes correspondant à la dernière modification du mot de passe du compte.
validSince chaîne 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 chaîne 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 chaîne 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é.

Vous pouvez associer une adresse e-mail/un mot de passe à un utilisateur actuel en envoyant une requête POST HTTP au point de terminaison setAccountInfo d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne Jeton d'ID Identity Platform du compte auquel vous essayez d'associer l'identifiant.
email chaîne Adresse e-mail à associer au compte.
mot de passe chaîne Nouveau mot de passe du compte.
returnSecureToken chaîne 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 chaîne UID de l'utilisateur actuel.
email chaîne Adresse e-mail du compte.
displayName chaîne Nom à afficher du compte.
photoUrl chaîne 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.
idToken chaîne Nouveau jeton d'ID Identity Platform de l'utilisateur.
refreshToken chaîne Jeton d'actualisation Identity Platform.
expiresIn chaîne 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.

Vous pouvez associer un identifiant OAuth à un utilisateur en envoyant une requête POST HTTP au point de terminaison verifyAssertion d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne Jeton d'ID Identity Platform du compte auquel vous essayez d'associer l'identifiant.
requestUri chaîne URI vers lequel l'IDP redirige l'utilisateur.
postBody chaîne Contient l'identifiant OAuth (un jeton d'ID ou un jeton d'accès) et l'ID de fournisseur qui émet l'identifiant.
returnSecureToken boolean 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 chaîne L'ID unique identifie le compte IdP.
providerId chaîne ID de fournisseur associé (par exemple, "google.com" pour le fournisseur Google).
localId chaîne 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 chaîne Jeton d'ID OIDC, s'il est disponible.
oauthAccessToken chaîne Jeton d'accès OAuth, s'il est disponible.
oauthTokenSecret chaîne Secret du jeton OAuth 1.0, s'il est disponible.
rawUserInfo chaîne 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 chaîne Nom de famille associé au compte.
fullName chaîne Nom complet associé au compte.
displayName chaîne Nom à afficher du compte.
photoUrl chaîne URL de la photo associée au compte.
idToken chaîne Jeton d'ID Identity Platform de l'utilisateur authentifié.
refreshToken chaîne Jeton d'actualisation Identity Platform de l'utilisateur authentifié.
expiresIn chaîne 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 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 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 l'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 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 POST HTTP au point de terminaison setAccountInfo d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne 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 chaîne UID de l'utilisateur actuel.
email chaîne Adresse e-mail du compte.
displayName chaîne Nom à afficher du compte.
photoUrl chaîne 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 d'adresse e-mail pour l'utilisateur actuel en envoyant une requête POST HTTP au point de terminaison getOobConfirmationCode d'authentification.

Méthode : POST

Content-Type : (Type-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 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 chaîne Type de code de confirmation à envoyer. Doit toujours être "VERIFY_EMAIL".
idToken chaîne 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 POST HTTP au point de terminaison setAccountInfo d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = 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 la propriété Type Description
oobCode chaîne Code d'action envoyé à l'adresse e-mail de l'utilisateur pour la validation par e-mail.
tenantId chaîne 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 chaîne Nom à afficher du compte.
photoUrl chaîne URL de la photo associée au compte.
passwordHash chaîne 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 POST HTTP au point de terminaison deleteAccount d'authentification.

Méthode : POST

Content-Type : (Type-contenu) = application/json

Point de terminaison
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Demande de charge utile du corps de la requête
Nom de la propriété Type Description
idToken chaîne 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

Voici un exemple d'erreur courante renvoyée par Identity Platform:

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