Utilisation de l'API
Vous pouvez interroger le backend Firebase Auth via une API REST. Cela peut être utilisé pour diverses opérations telles que la création de nouveaux utilisateurs, la connexion d'utilisateurs existants et la modification ou la suppression de ces utilisateurs.
Dans tout ce document, API_KEY
fait référence à la clé API Web, qui peut être obtenue sur la page des paramètres du projet dans votre console d'administration.
Échangez un jeton personnalisé contre un identifiant et un jeton d'actualisation
Vous pouvez échanger un jeton d'authentification personnalisé contre un ID et un jeton d'actualisation en envoyant une requête HTTP POST
au point de terminaison Auth verifyCustomToken
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
jeton | chaîne | Un jeton personnalisé Firebase Auth à partir duquel créer une paire de jetons d'identification et d'actualisation. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase généré à partir du jeton personnalisé fourni. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth généré à partir du jeton personnalisé fourni. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'ID Firebase et le jeton d'actualisation associés au jeton personnalisé.
Exemple de réponse
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
Codes d'erreur courants
- INVALID_CUSTOM_TOKEN : le format du jeton personnalisé est incorrect ou le jeton n'est pas valide pour une raison quelconque (par exemple, signature expirée, non valide, etc.)
- CREDENTIAL_MISMATCH : le jeton personnalisé correspond à un autre projet Firebase.
Échanger un jeton d'actualisation contre un jeton d'identification
Vous pouvez actualiser un jeton d'identification Firebase en envoyant une requête HTTP POST
au point de terminaison securetoken.googleapis.com
.
Méthode : POST
Type de contenu : application/x-www-form-urlencoded
Charge utile du corps de la demandehttps://securetoken.googleapis.com/v1/token?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
type_de_subvention | chaîne | Le type d'octroi du jeton d'actualisation, toujours « refresh_token ». |
rafraîchir_token | chaîne | Un jeton d'actualisation Firebase Auth. |
Nom de la propriété | Taper | Description |
---|---|---|
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
type_jeton | chaîne | Le type du jeton d'actualisation, toujours "Bearer". |
rafraîchir_token | chaîne | Le jeton d'actualisation Firebase Auth fourni dans la demande ou un nouveau jeton d'actualisation. |
id_token | chaîne | Un jeton d'identification d'authentification Firebase. |
ID de l'utilisateur | chaîne | L'uid correspondant au jeton d'identification fourni. |
id_projet | chaîne | Votre ID de projet Firebase. |
Demande d'échantillon
curl 'https://securetoken.googleapis.com/v1/token?key=[API_KEY]' \ -H 'Content-Type: application/x-www-form-urlencoded' \ --data 'grant_type=refresh_token&refresh_token=[REFRESH_TOKEN]'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le nouveau jeton d'identification Firebase et le jeton d'actualisation.
Exemple de réponse
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
Codes d'erreur courants
- TOKEN_EXPIRED : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.
- USER_NOT_FOUND : L'utilisateur correspondant au jeton d'actualisation n'a pas été trouvé. Il est probable que l'utilisateur ait été supprimé.
- Clé API non valide. Veuillez transmettre une clé API valide. (clé API non valide fournie)
- INVALID_REFRESH_TOKEN : un jeton d'actualisation non valide est fourni.
- Charge utile JSON non valide reçue. Nom inconnu \"refresh_tokens\" : Impossible de lier le paramètre de requête. Le champ « refresh_tokens » est introuvable dans le message de demande.
- INVALID_GRANT_TYPE : le type d'octroi spécifié n'est pas valide.
- MISSING_REFRESH_TOKEN : aucun jeton d'actualisation fourni.
- PROJECT_NUMBER_MISMATCH : le numéro de projet du jeton d'actualisation ne correspond pas à celui de la clé API fournie.
Inscrivez-vous avec email / mot de passe
Vous pouvez créer un nouvel utilisateur de messagerie et de mot de passe en envoyant une requête HTTP POST
au point de terminaison Auth signupNewUser
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | L'e-mail que l'utilisateur doit créer. | |
mot de passe | chaîne | Le mot de passe que l'utilisateur doit créer. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur nouvellement créé. |
chaîne | L'e-mail de l'utilisateur nouvellement créé. | |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth pour l'utilisateur nouvellement créé. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
identifiant local | chaîne | L'uid de l'utilisateur nouvellement créé. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés au nouveau compte.
Exemple de réponse
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
Codes d'erreur courants
- EMAIL_EXISTS : L'adresse e-mail est déjà utilisée par un autre compte.
- OPERATION_NOT_ALLOWED : la connexion par mot de passe est désactivée pour ce projet.
- TOO_MANY_ATTEMPTS_TRY_LATER : Nous avons bloqué toutes les demandes provenant de cet appareil en raison d'une activité inhabituelle. Réessayez plus tard.
Connectez-vous avec email / mot de passe
Vous pouvez connecter un utilisateur avec une adresse e-mail et un mot de passe en envoyant une requête HTTP POST
au point de terminaison Auth verifyPassword
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | L'e-mail avec lequel l'utilisateur se connecte. | |
mot de passe | chaîne | Le mot de passe du compte. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur authentifié. |
chaîne | L'e-mail de l'utilisateur authentifié. | |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth pour l'utilisateur authentifié. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
identifiant local | chaîne | L’uid de l’utilisateur authentifié. |
inscrit | booléen | Si l'e-mail concerne un compte existant. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"email":"[user@example.com]","password":"[PASSWORD]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés au compte de messagerie/mot de passe existant.
Exemple de réponse
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
Codes d'erreur courants
- EMAIL_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
- INVALID_PASSWORD : Le mot de passe n'est pas valide ou l'utilisateur n'a pas de mot de passe.
- USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.
Connectez-vous de manière anonyme
Vous pouvez connecter un utilisateur de manière anonyme en envoyant une requête HTTP POST
au point de terminaison Auth signupNewUser
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur nouvellement créé. |
chaîne | Puisque l'utilisateur est anonyme, ce champ doit être vide. | |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth pour l'utilisateur nouvellement créé. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
identifiant local | chaîne | L'uid de l'utilisateur nouvellement créé. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur anonyme.
Exemple de réponse
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
Codes d'erreur courants
- OPERATION_NOT_ALLOWED : la connexion des utilisateurs anonymes est désactivée pour ce projet.
Connectez-vous avec les informations d'identification OAuth
Vous pouvez connecter un utilisateur avec des informations d'identification OAuth en envoyant une requête HTTP POST
au point de terminaison Auth verifyAssertion
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
requêteUri | chaîne | L'URI vers lequel l'IDP redirige l'utilisateur. |
postCorps | chaîne | Contient les informations d'identification OAuth (un jeton d'identification ou un jeton d'accès) et l'ID du fournisseur qui émet les informations d'identification. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
returnIdpCredential | booléen | S'il faut forcer le retour des informations d'identification OAuth sur les erreurs suivantes : FEDERATED_USER_ID_ALREADY_LINKED et EMAIL_EXISTS. |
Nom de la propriété | Taper | Description |
---|---|---|
federatedId | chaîne | L'ID unique identifie le compte IdP. |
ID du fournisseur | chaîne | L'ID du fournisseur lié (par exemple "google.com" pour le fournisseur Google). |
identifiant local | chaîne | L’uid de l’utilisateur authentifié. |
Email verifié | booléen | Si l'e-mail de connexion est vérifié. |
chaîne | L'email du compte. | |
oauthIdToken | chaîne | Le jeton d’identification OIDC si disponible. |
oauthAccessToken | chaîne | Le jeton d'accès OAuth si disponible. |
oauthTokenSecret | chaîne | Le secret du jeton OAuth 1.0, si disponible. |
infoutilisateurbrut | chaîne | Réponse JSON sous forme de chaîne contenant toutes les données IdP correspondant aux informations d'identification OAuth fournies. |
prénom | chaîne | Le prénom du compte. |
nom de famille | chaîne | Le nom de famille du compte. |
nom et prénom | chaîne | Le nom complet du compte. |
Afficher un nom | chaîne | Le nom d’affichage du compte. |
URL de la photo | chaîne | L'URL de la photo du compte. |
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur authentifié. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth pour l'utilisateur authentifié. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
besoinConfirmation | booléen | Si un autre compte avec les mêmes informations d'identification existe déjà. L'utilisateur devra se connecter au compte d'origine, puis y associer les informations d'identification actuelles. |
Exemple de requête avec jeton d'identification OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse avec le jeton d'identification OAuth
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Exemple de requête avec jeton d'accès OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse avec le jeton d'accès OAuth
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Exemple de demande avec les informations d'identification Twitter OAuth 1.0
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse avec les informations d'identification Twitter OAuth 1.0
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Codes d'erreur courants
- OPERATION_NOT_ALLOWED : le fournisseur correspondant est désactivé pour ce projet.
- INVALID_IDP_RESPONSE : les informations d'identification d'authentification fournies sont mal formées ou ont expiré.
Récupérer les fournisseurs pour le courrier électronique
Vous pouvez rechercher tous les fournisseurs associés à un e-mail spécifié en envoyant une requête HTTP POST
au point de terminaison Auth createAuthUri
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
identifiant | chaîne | Adresse e-mail de l'utilisateur |
continuerUri | chaîne | L'URI vers lequel l'IDP redirige l'utilisateur. Pour ce cas d'utilisation, il s'agit uniquement de l'URL actuelle. |
Nom de la propriété | Taper | Description |
---|---|---|
tous les fournisseurs | Liste des chaînes | La liste des fournisseurs avec lesquels l'utilisateur s'est précédemment connecté. |
inscrit | booléen | Si l'e-mail concerne un compte existant |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"identifier":"[user@example.com]","continueUri":"[http://localhost:8080/app]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient la liste des fournisseurs associés à l'e-mail.
Exemple de réponse
{ "allProviders": [ "password", "google.com" ], "registered": true }
Codes d'erreur courants
- INVALID_EMAIL : L'adresse e-mail est mal formatée.
Envoyer un e-mail de réinitialisation du mot de passe
Vous pouvez envoyer un e-mail de réinitialisation de mot de passe en envoyant une requête HTTP POST
au point de terminaison Auth getOobConfirmationCode
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]En-têtes facultatifs
Nom de la propriété | Description |
---|---|
X-Firebase-Locale | Le code de langue correspondant aux paramètres régionaux de l'utilisateur. En passant ceci, vous localiserez l'e-mail de réinitialisation du mot de passe envoyé à l'utilisateur. |
Nom de la propriété | Taper | Description |
---|---|---|
type de demande | chaîne | Le type de code OOB à renvoyer. Doit être "PASSWORD_RESET" pour la réinitialisation du mot de passe. |
chaîne | Adresse e-mail de l'utilisateur. |
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | Adresse e-mail de l'utilisateur. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"PASSWORD_RESET","email":"[user@example.com]"}'
Une demande réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "email": "[user@example.com]" }
Codes d'erreur courants
- EMAIL_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
Vérifier le code de réinitialisation du mot de passe
Vous pouvez vérifier un code de réinitialisation de mot de passe en envoyant une requête HTTP POST
au point de terminaison Auth resetPassword
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
oobCode | chaîne | Le code d'action de courrier électronique envoyé à l'e-mail de l'utilisateur pour réinitialiser le mot de passe. |
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | Adresse e-mail de l'utilisateur. | |
type de demande | chaîne | Type du code d'action de l'e-mail. Doit être "PASSWORD_RESET". |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
Codes d'erreur courants
- OPERATION_NOT_ALLOWED : la connexion par mot de passe est désactivée pour ce projet.
- EXPIRED_OOB_CODE : le code d'action a expiré.
- INVALID_OOB_CODE : le code d'action n'est pas valide. Cela peut se produire si le code est mal formé, a expiré ou a déjà été utilisé.
Confirmer la réinitialisation du mot de passe
Vous pouvez appliquer une modification de réinitialisation de mot de passe en envoyant une requête HTTP POST
au point de terminaison Auth resetPassword
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
oobCode | chaîne | Le code d'action de courrier électronique envoyé à l'e-mail de l'utilisateur pour réinitialiser le mot de passe. |
nouveau mot de passe | chaîne | Le nouveau mot de passe de l'utilisateur. |
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | Adresse e-mail de l'utilisateur. | |
type de demande | chaîne | Type du code d'action de l'e-mail. Doit être "PASSWORD_RESET". |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]","newPassword":"[NEW_PASSWORD]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
Codes d'erreur courants
- OPERATION_NOT_ALLOWED : la connexion par mot de passe est désactivée pour ce projet.
- EXPIRED_OOB_CODE : le code d'action a expiré.
- INVALID_OOB_CODE : le code d'action n'est pas valide. Cela peut se produire si le code est mal formé, a expiré ou a déjà été utilisé.
- USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.
Changer l'e-mail
Vous pouvez modifier l'adresse e-mail d'un utilisateur en envoyant une requête HTTP POST
au point de terminaison Auth setAccountInfo
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]En-têtes facultatifs
Nom de la propriété | Description |
---|---|
X-Firebase-Locale | Le code de langue correspondant aux paramètres régionaux de l'utilisateur. Si vous le transmettez, la révocation de la modification de l'e-mail envoyée à l'utilisateur sera localisée. |
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur. |
chaîne | Le nouvel e-mail de l'utilisateur. | |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. |
Nom de la propriété | Taper | Description |
---|---|---|
identifiant local | chaîne | L'uid de l'utilisateur actuel. |
chaîne | Adresse e-mail de l'utilisateur. | |
mot de passeHash | chaîne | Version de hachage du mot de passe. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
jeton d'identification | chaîne | Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","email":"[user@example2.com]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le nouveau jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur.
Exemple de réponse
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
Codes d'erreur courants
- EMAIL_EXISTS : L'adresse e-mail est déjà utilisée par un autre compte.
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
Changer le mot de passe
Vous pouvez modifier le mot de passe d'un utilisateur en envoyant une requête HTTP POST
au point de terminaison Auth setAccountInfo
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur. |
mot de passe | chaîne | Nouveau mot de passe de l'utilisateur. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. |
Nom de la propriété | Taper | Description |
---|---|---|
identifiant local | chaîne | L'uid de l'utilisateur actuel. |
chaîne | Adresse e-mail de l'utilisateur. | |
mot de passeHash | chaîne | Version de hachage du mot de passe. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
jeton d'identification | chaîne | Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[FIREBASE_ID_TOKEN]","password":"[NEW_PASSWORD]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le nouveau jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur.
Exemple de réponse
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
Codes d'erreur courants
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- WEAK_PASSWORD : Le mot de passe doit comporter 6 caractères ou plus.
Mettre à jour le profil
Vous pouvez mettre à jour le profil d'un utilisateur (nom d'affichage/URL de la photo) en envoyant une requête HTTP POST
au point de terminaison Auth setAccountInfo
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur. |
Afficher un nom | chaîne | Nouveau nom d'affichage de l'utilisateur. |
URL de la photo | chaîne | Nouvelle URL de la photo de l'utilisateur. |
deleteAttribute | Liste des chaînes | Liste des attributs à supprimer, "DISPLAY_NAME" ou "PHOTO_URL". Cela annulera ces valeurs. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. |
Nom de la propriété | Taper | Description |
---|---|---|
identifiant local | chaîne | L'uid de l'utilisateur actuel. |
chaîne | Adresse e-mail de l'utilisateur. | |
Afficher un nom | chaîne | Nouveau nom d'affichage de l'utilisateur. |
URL de la photo | chaîne | Nouvelle URL de la photo de l'utilisateur. |
mot de passeHash | chaîne | Version de hachage du mot de passe. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
jeton d'identification | chaîne | Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","displayName":"[NAME]","photoUrl":"[URL]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "localId": "tRcfmLH...", "email": "user@example2.com", "displayName": "John Doe", "photoUrl": "[http://localhost:8080/img1234567890/photo.png]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example2.com", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
Codes d'erreur courants
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
Obtenir les données utilisateur
Vous pouvez obtenir les données d'un utilisateur en envoyant une requête HTTP POST
au point de terminaison Auth getAccountInfo
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Le jeton d'identification Firebase du compte. |
Nom de la propriété | Taper | Description |
---|---|---|
utilisateurs | Liste des objets JSON | Le compte associé au jeton d'identification Firebase donné. Vérifiez ci-dessous pour plus de détails. |
users
)Nom de la propriété | Taper | Description |
---|---|---|
identifiant local | chaîne | L'uid de l'utilisateur actuel. |
chaîne | L'email du compte. | |
Email verifié | booléen | Si l'e-mail du compte a été vérifié ou non. |
Afficher un nom | chaîne | Le nom d’affichage du compte. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
URL de la photo | chaîne | L'URL de la photo du compte. |
mot de passeHash | chaîne | Version de hachage du mot de passe. |
mot de passeMise à jourà | double | L'horodatage, en millisecondes, de la dernière modification du mot de passe du compte. |
valideDepuis | chaîne | L'horodatage, en secondes, qui marque une limite avant laquelle les jetons d'identification Firebase sont considérés comme révoqués. |
désactivé | booléen | Que le compte soit désactivé ou non. |
dernière connexion à | chaîne | L'horodatage, en millisecondes, de la dernière connexion du compte. |
créé à | chaîne | L'horodatage, en millisecondes, de la création du compte. |
authentification personnalisée | booléen | Si le compte est authentifié par le développeur. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contiendra toutes les informations utilisateur associées au compte.
Exemple de réponse
{ "users": [ { "localId": "ZY1rJK0...", "email": "user@example.com", "emailVerified": false, "displayName": "John Doe", "providerUserInfo": [ { "providerId": "password", "displayName": "John Doe", "photoUrl": "http://localhost:8080/img1234567890/photo.png", "federatedId": "user@example.com", "email": "user@example.com", "rawId": "user@example.com", "screenName": "user@example.com" } ], "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "passwordUpdatedAt": 1.484124177E12, "validSince": "1484124177", "disabled": false, "lastLoginAt": "1484628946000", "createdAt": "1484124142000", "customAuth": false } ] }
Codes d'erreur courants
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- USER_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
Lien avec email/mot de passe
Vous pouvez lier un e-mail/un mot de passe à un utilisateur actuel en envoyant une requête HTTP POST
au point de terminaison Auth setAccountInfo
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Le jeton d'identification Firebase du compte auquel vous essayez de lier les informations d'identification. |
chaîne | L'e-mail pour créer un lien vers le compte. | |
mot de passe | chaîne | Le nouveau mot de passe du compte. |
retourSecureToken | chaîne | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
Nom de la propriété | Taper | Description |
---|---|---|
identifiant local | chaîne | L'uid de l'utilisateur actuel. |
chaîne | L'email du compte. | |
Afficher un nom | chaîne | Le nom d’affichage du compte. |
URL de la photo | chaîne | L'URL de la photo du compte. |
mot de passeHash | chaîne | Version de hachage du mot de passe. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
Email verifié | booléen | Si l'e-mail du compte a été vérifié ou non. |
jeton d'identification | chaîne | Nouveau jeton d'identification d'authentification Firebase pour l'utilisateur. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary \ '{"idToken":"[ID_TOKEN]","email":"[user@example.com]","password":"[PASS]","returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ], "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "emailVerified": false }
Codes d'erreur courants
- CREDENTIAL_TOO_OLD_LOGIN_AGAIN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- TOKEN_EXPIRED : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- WEAK_PASSWORD : Le mot de passe doit comporter 6 caractères ou plus.
Lien avec les informations d'identification OAuth
Vous pouvez lier un identifiant OAuth à un utilisateur en envoyant une requête HTTP POST
au point de terminaison Auth verifyAssertion
.
Méthode : POST
Type de contenu : application/json
Charge utile du corps de la demandehttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]du point de terminaison
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Le jeton d'identification Firebase du compte auquel vous essayez de lier les informations d'identification. |
requêteUri | chaîne | L'URI vers lequel l'IDP redirige l'utilisateur. |
postCorps | chaîne | Contient les informations d'identification OAuth (un jeton d'identification ou un jeton d'accès) et l'ID du fournisseur qui émet les informations d'identification. |
retourSecureToken | booléen | Indique s'il faut ou non renvoyer un identifiant et un jeton d'actualisation. Cela devrait toujours être vrai. |
returnIdpCredential | booléen | S'il faut forcer le retour des informations d'identification OAuth sur les erreurs suivantes : FEDERATED_USER_ID_ALREADY_LINKED et EMAIL_EXISTS. |
Nom de la propriété | Taper | Description |
---|---|---|
federatedId | chaîne | L'ID unique identifie le compte IdP. |
ID du fournisseur | chaîne | L'ID du fournisseur lié (par exemple "google.com" pour le fournisseur Google). |
identifiant local | chaîne | L’uid de l’utilisateur authentifié. |
Email verifié | booléen | Si l'e-mail de connexion est vérifié. |
chaîne | L'email du compte. | |
oauthIdToken | chaîne | Le jeton d’identification OIDC si disponible. |
oauthAccessToken | chaîne | Le jeton d'accès OAuth si disponible. |
oauthTokenSecret | chaîne | Le secret du jeton OAuth 1.0, si disponible. |
infoutilisateurbrut | chaîne | Réponse JSON sous forme de chaîne contenant toutes les données IdP correspondant aux informations d'identification OAuth fournies. |
prénom | chaîne | Le prénom du compte. |
nom de famille | chaîne | Le nom de famille du compte. |
nom et prénom | chaîne | Le nom complet du compte. |
Afficher un nom | chaîne | Le nom d’affichage du compte. |
URL de la photo | chaîne | L'URL de la photo du compte. |
jeton d'identification | chaîne | Un jeton d'identification d'authentification Firebase pour l'utilisateur authentifié. |
jeton d'actualisation | chaîne | Un jeton d'actualisation Firebase Auth pour l'utilisateur authentifié. |
expire dans | chaîne | Nombre de secondes au bout desquelles le jeton d'identification expire. |
Exemple de requête avec jeton d'identification OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"id_token=[GOOGLE_ID_TOKEN]&providerId=[google.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse avec le jeton d'identification OAuth
{ "federatedId": "https://accounts.google.com/1234567890", "providerId": "google.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthIdToken": "[GOOGLE_ID_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Exemple de requête avec jeton d'accès OAuth
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[FACEBOOK_ACCESS_TOKEN]&providerId=[facebook.com]","idToken":"[FIREBASE_ID_TOKEN]","requestUri":"[http://localhost]","returnIdpCredential":true,"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse avec le jeton d'accès OAuth
{ "federatedId": "http://facebook.com/1234567890", "providerId": "facebook.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[FACEBOOK_ACCESS_TOKEN]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "https://scontent.xx.fbcdn.net/v/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Exemple de demande avec les informations d'identification Twitter OAuth 1.0
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"postBody":"access_token=[TWITTER_ACCESS_TOKEN]&oauth_token_secret=[TWITTER_TOKEN_SECRET]&providerId=[twitter.com]","requestUri":"[http://localhost]","idToken":"[FIREBASE_ID_TOKEN]","returnIdpCredential":true,"returnSecureToken":true}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
. La réponse contient le jeton d'identification Firebase et le jeton d'actualisation associés à l'utilisateur authentifié.
Exemple de réponse avec les informations d'identification Twitter OAuth 1.0
{ "federatedId": "http://twitter.com/1234567890", "providerId": "twitter.com", "localId": "5xwsPCWYo...", "emailVerified": true, "email": "user@example.com", "oauthAccessToken": "[OAUTH_ACCESS_TOKEN]", "oauthTokenSecret": "[OAUTH_TOKEN_SECRET]", "firstName": "John", "lastName": "Doe", "fullName": "John Doe", "displayName": "John Doe", "idToken": "[ID_TOKEN]", "photoUrl": "http://abs.twimg.com/sticky/...", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "rawUserInfo": "{\"updated_time\":\"2017-02-22T01:10:57+0000\",\"gender\":\"male\", ...}" }
Codes d'erreur courants
- OPERATION_NOT_ALLOWED : le fournisseur correspondant est désactivé pour ce projet.
- INVALID_IDP_RESPONSE : les informations d'identification d'authentification fournies sont mal formées ou ont expiré.
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- EMAIL_EXISTS : L'adresse e-mail est déjà utilisée par un autre compte.
- FEDERATED_USER_ID_ALREADY_LINKED : cet identifiant est déjà associé à un autre compte utilisateur.
Dissocier le fournisseur
Vous pouvez dissocier un fournisseur d'un utilisateur actuel en envoyant une requête HTTP POST
au point de terminaison Auth setAccountInfo
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Le jeton d'identification Firebase du compte. |
supprimerProvider | Liste des chaînes | La liste des identifiants de fournisseur à dissocier, par exemple : "google.com", "mot de passe", etc. |
Nom de la propriété | Taper | Description |
---|---|---|
identifiant local | chaîne | L'uid de l'utilisateur actuel. |
chaîne | L'email du compte. | |
Afficher un nom | chaîne | Le nom d’affichage du compte. |
URL de la photo | chaîne | L'URL de la photo du compte. |
mot de passeHash | chaîne | Version de hachage du mot de passe. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
Email verifié | booléen | Si l'e-mail du compte a été vérifié ou non. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]","deleteProvider":["[facebook.com]"]}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "localId": "huDwUz...", "email": "user@example.com", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg", "passwordHash": "...", "providerUserInfo": [ { "providerId": "google.com", "federatedId": "1234567890", "displayName": "John Doe", "photoUrl": "https://lh5.googleusercontent.com/.../photo.jpg" }, { "providerId": "password", "federatedId": "user@example.com" } ], "emailVerified": "true" }
Codes d'erreur courants
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
Envoyer une vérification par e-mail
Vous pouvez envoyer une vérification par e-mail pour l'utilisateur actuel en envoyant une requête HTTP POST
au point de terminaison Auth getOobConfirmationCode
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]En-têtes facultatifs
Nom de la propriété | Description |
---|---|
X-Firebase-Locale | Le code de langue correspondant aux paramètres régionaux de l'utilisateur. Si vous réussissez, vous localiserez l'e-mail de vérification envoyé à l'utilisateur. |
Nom de la propriété | Taper | Description |
---|---|---|
type de demande | chaîne | Le type de code de confirmation à envoyer. Doit toujours être "VERIFY_EMAIL". |
jeton d'identification | chaîne | Jeton d'identification Firebase de l'utilisateur à vérifier. |
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | L'email du compte. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"requestType":"VERIFY_EMAIL","idToken":"[FIREBASE_ID_TOKEN]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "email": "user@example.com" }
Codes d'erreur courants
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- USER_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
Confirmer la vérification par e-mail
Vous pouvez confirmer un code de vérification d'e-mail en envoyant une requête HTTP POST
au point de terminaison Auth setAccountInfo
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
oobCode | chaîne | Le code d'action envoyé à l'adresse e-mail de l'utilisateur pour vérification de l'e-mail. |
Nom de la propriété | Taper | Description |
---|---|---|
chaîne | L'email du compte. | |
Afficher un nom | chaîne | Le nom d’affichage du compte. |
URL de la photo | chaîne | L'URL de la photo du compte. |
mot de passeHash | chaîne | Le hachage du mot de passe. |
fournisseurUserInfo | Liste des objets JSON | Liste de tous les objets fournisseur liés qui contiennent "providerId" et "federatedId". |
Email verifié | booléen | Si l'e-mail du compte a été vérifié ou non. |
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Exemple de réponse
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
Codes d'erreur courants
- EXPIRED_OOB_CODE : le code d'action a expiré.
- INVALID_OOB_CODE : le code d'action n'est pas valide. Cela peut se produire si le code est mal formé, a expiré ou a déjà été utilisé.
- USER_DISABLED : Le compte utilisateur a été désactivé par un administrateur.
- EMAIL_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
Supprimer le compte
Vous pouvez supprimer un utilisateur actuel en envoyant une requête HTTP POST
au point de terminaison Auth deleteAccount
.
Méthode : POST
Type de contenu : application/json
Point de terminaisonhttps://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]Charge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
jeton d'identification | chaîne | Le jeton d'identification Firebase de l'utilisateur à supprimer. |
Nom de la propriété | Taper | Description |
---|
Demande d'échantillon
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[FIREBASE_ID_TOKEN]"}'
Une requête réussie est indiquée par un code d'état HTTP 200 OK
.
Codes d'erreur courants
- INVALID_ID_TOKEN : les informations d'identification de l'utilisateur ne sont plus valides. L'utilisateur doit se reconnecter.
- USER_NOT_FOUND : Il n'existe aucune fiche utilisateur correspondant à cet identifiant. L'utilisateur a peut-être été supprimé.
Émulateur d'authentification Firebase
La suite Firebase Local Emulator comprend un émulateur d'authentification , qui peut être utilisé pour le prototypage local et le test des flux d'authentification. L'émulateur expose les points de terminaison REST suivants.
Effacer les comptes d'utilisateurs
Supprimez tous les comptes du projet spécifié, quel que soit leur état.
Méthode : SUPPRIMER
Point de terminaison Notez que 9099
est le port par défaut de l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réellement utilisé.
http://localhost:9099/emulator/v1/projects/{project-id}/accounts
Obtenir la configuration de l'émulateur
Obtenez la configuration spécifique à l'émulateur pour le projet spécifié.
Méthode : OBTENIR
Point de terminaison Notez que 9099
est le port par défaut de l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réellement utilisé.
http://localhost:9099/emulator/v1/projects/{project-id}/configCharge utile de réponse
Nom de la propriété | Taper | Description |
---|---|---|
se connecter | objet | Objet de configuration signIn contenant une seule clé, allowDuplicateEmails (booléen). |
Configuration de l'émulateur de correctifs
Mettez à jour la configuration spécifique à l’émulateur pour le projet spécifié.
Méthode : PATCH
Point de terminaison Notez que 9099
est le port par défaut de l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réellement utilisé.
Type de contenu : application/json
http://localhost:9099/emulator/v1/projects/{project-id}/configCharge utile du corps de la demande
Nom de la propriété | Taper | Description |
---|---|---|
se connecter | objet | Objet de configuration Signin souhaité avec une seule touche, allowDuplicateEmails (booléen). |
Nom de la propriété | Taper | Description |
---|---|---|
se connecter | objet | Objet de configuration de la signature post-request avec une seule touche, allowDuplicateEmails (boolean). |
Récupérer les codes d'authentification hors bande
Si les flux d'authentification que vous testez généreraient normalement des codes hors bande (par exemple, les codes de vérification par e-mail, les codes de réinitialisation du mot de passe), l'émulateur stocke ces codes en interne jusqu'à ce qu'ils soient utilisés.
Méthode: obtenir
Point de terminaison Notez que 9099
est le port par défaut pour l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réel utilisé.
http://localhost:9099/emulator/v1/projects/{project-id}/oobCodesRéponse charge utile
Nom de la propriété | Taper | Description |
---|---|---|
oobcodes | tableau | Un tableau d'objets contenant des détails de tous les codes de confirmation en attente. Chaque objet contient email (string), oobCode (string), oobLink (string) et requestType (string) |
Récupérer les codes de vérification SMS
Si vous testez les flux d'authentification téléphonique / SMS, l'émulateur stocke ces codes SMS en interne jusqu'à ce qu'ils soient utilisés.
Méthode: obtenir
Point de terminaison Notez que 9099
est le port par défaut pour l'émulateur d'authentification. Vérifiez la sortie du terminal pour le port réel utilisé.
http://localhost:9099/emulator/v1/projects/{project-id}/verificationCodesRéponse Télélée utile
Nom de la propriété | Taper | Description |
---|---|---|
codes de vérification | tableau | Un tableau d'objets contenant des détails de tous les codes de vérification en attente. Chaque objet contient phoneNumber (String) et sessionCode (String). |
Réponse d'erreur
Format de réponse d'erreur
Chaque fois qu'une erreur est renvoyée du serveur backend pour l'une des API ci-dessus, la réponse aura le format suivant.
Exemple de réponse
{ "error": { "errors": [ { "domain": "global", "reason": "invalid", "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } ], "code": 400, "message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN" } }
Le code d'erreur est obtenu à partir du champ Message. Tous les codes d'erreur ci-dessus se réfèrent au contenu du champ de message.