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 :
Accédez à la page Fournisseurs d'identité dans la console Google Cloud.
Accéder à la page "Fournisseurs d'identité"Cliquez sur Informations sur la configuration de l'application.
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
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. |
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é. |
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 terminaisonhttps://securetoken.googleapis.com/v1/token?key=[API_KEY]
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. |
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'octroi spécifié n'est pas valide.
- MISSING_REFRESH_TOKEN: aucun jeton d'actualisation fourni.
- PROJECT_NUMBER_MISMATCH: le numéro de projet du jeton d'actualisation ne correspond pas à celui de la clé API fournie.
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Nom de la propriété | Type | Description |
---|---|---|
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. |
Nom de propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'identification Identity Platform de l'utilisateur nouvellement créé. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Nom de la propriété | Type | Description |
---|---|---|
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. |
Nom de propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'ID Identity Platform de l'utilisateur authentifié. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'identification Identity Platform de l'utilisateur nouvellement créé. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
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. |
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. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
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. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
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. |
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. |
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. |
Nom de propriété | Type | Description |
---|---|---|
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'ID Identity Platform de l'utilisateur. |
chaîne | Nouvelle adresse e-mail de l'utilisateur. | |
returnSecureToken | boolean | Indique s'il faut renvoyer un ID et un jeton d'actualisation. |
Nom de propriété | Type | Description |
---|---|---|
localId | chaîne | UID de l'utilisateur actuel. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
localId | chaîne | UID de l'utilisateur actuel. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
localId | chaîne | UID de l'utilisateur actuel. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Nom de la propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'ID Identity Platform du compte. |
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. |
users
)Nom de propriété | Type | Description |
---|---|---|
localId | chaîne | UID de l'utilisateur actuel. |
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é.
Associer avec l'adresse e-mail/le mot de passe
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nom de la propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'ID Identity Platform du compte auquel vous essayez d'associer l'identifiant. |
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". |
Nom de propriété | Type | Description |
---|---|---|
localId | chaîne | UID de l'utilisateur actuel. |
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.
Association avec l'identifiant OAuth
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
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. |
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. |
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.
Dissocier un fournisseur
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
localId | chaîne | UID de l'utilisateur actuel. |
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
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. |
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. |
Nom de propriété | Type | Description |
---|---|---|
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
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. |
Nom de propriété | Type | Description |
---|---|---|
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 terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Nom de la propriété | Type | Description |
---|---|---|
idToken | chaîne | Jeton d'ID Identity Platform de l'utilisateur à supprimer. |
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
.