Usar la API REST
En este documento se explica cómo realizar operaciones de usuario habituales, como iniciar sesión y trabajar con tokens, mediante la API REST de Identity Platform.
Antes de empezar
Para usar la API REST, necesitarás una clave de API de Identity Platform. Para obtener una clave, sigue estos pasos:
Ve a la página Proveedores de identidades de la consola de Google Cloud .
Ve a la página Proveedores de identidadesHaz clic en Detalles de la configuración de la aplicación.
Copia el campo
apiKey
.
Ten en cuenta que se requiere HTTPS para todas las llamadas a la API.
Llamar a la API
Intercambiar un token personalizado por un token de ID y un token de actualización
Puedes canjear un token de autenticación personalizado por un token de ID y un token de actualización enviando una solicitud HTTP POST
al endpoint signInWithCustomToken
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
token | cadena | Un token personalizado de Identity Platform a partir del cual se crea un par de tokens de ID y de actualización. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
tenantId | cadena | El ID de inquilino con el que inicia sesión el usuario. Solo se usa en el multitenancy. Debe coincidir con el tenant_id del token. |
Propiedad | Nombre | Descripción |
---|---|---|
alg | Algoritmo | Debe ser RS256 . |
iss | Emisor | La dirección de correo de la cuenta de servicio de tu proyecto. |
sub | Asunto | La dirección de correo de la cuenta de servicio de tu proyecto. |
aud | Audiencia | https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit |
iat | Hora de emisión | La hora actual, en segundos desde el inicio del registro de tiempo de Unix. |
exp | Plazo de vencimiento | Hora, en segundos desde la época de UNIX, en la que caduca el token. Puede ser hasta 3600 segundos después de la iat .
Nota: Esto solo controla el momento en el que caduca el token personalizado. Sin embargo, una vez que un usuario inicia sesión con signInWithCustomToken() , su sesión permanecerá iniciada en el dispositivo hasta que se invalide o hasta que el usuario cierre la sesión. |
uid | ID de usuario | Identificador único del usuario, que tiene entre 1 y 36 caracteres. |
tenant_id | Tenant Id | Identificador del arrendatario en el que inicia sesión el usuario. |
reclamaciones (opcional) | Reivindicaciones personalizadas opcionales que se incluirán en las variables auth o request.auth de las reglas de seguridad. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Un token de ID de Identity Platform generado a partir del token personalizado proporcionado. |
refreshToken | cadena | Un token de actualización de Identity Platform generado a partir del token personalizado proporcionado. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
Solicitud de ejemplo
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]' \ -H 'Content-Type: application/json' \ --data-binary '{"token":"[CUSTOM_TOKEN]","returnSecureToken":true}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID y el token de actualización de Identity Platform asociados al token personalizado.
Respuesta de ejemplo
{ "idToken": "[ID_TOKEN]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
Códigos de error habituales
- INVALID_CUSTOM_TOKEN: el formato del token personalizado es incorrecto o el token no es válido por algún motivo (por ejemplo, ha caducado o la firma no es válida).
- CREDENTIAL_MISMATCH: el token personalizado corresponde a otro proyecto. Google Cloud
Intercambiar un token de actualización por un token de ID
Puedes actualizar un token de ID de Identity Platform enviando una solicitud HTTP POST
al endpoint securetoken.googleapis.com
.
Método: POST
Content-Type: application/x-www-form-urlencoded
Endpointhttps://securetoken.googleapis.com/v1/token?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
grant_type | cadena | Tipo de concesión del token de actualización, que siempre es "refresh_token". |
refresh_token | cadena | Un token de actualización de Identity Platform. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
expires_in | cadena | Número de segundos en los que caduca el token de ID. |
token_type | cadena | El tipo del token de actualización, que siempre es "Bearer". |
refresh_token | cadena | El token de actualización de Identity Platform proporcionado en la solicitud o un nuevo token de actualización. |
id_token | cadena | Un token de ID de Identity Platform. |
user_id | cadena | El uid correspondiente al token de ID proporcionado. |
project_id | cadena | El ID de tu proyecto Google Cloud . |
Solicitud de ejemplo
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]'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el nuevo token de ID y el token de actualización de Identity Platform.
Respuesta de ejemplo
{ "expires_in": "3600", "token_type": "Bearer", "refresh_token": "[REFRESH_TOKEN]", "id_token": "[ID_TOKEN]", "user_id": "tRcfmLH7o2XrNELi...", "project_id": "1234567890" }
Códigos de error habituales
- TOKEN_EXPIRED: las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- USER_DISABLED: un administrador ha inhabilitado la cuenta de usuario.
- USER_NOT_FOUND: no se ha encontrado el usuario correspondiente al token de actualización. Es probable que el usuario se haya eliminado.
- Clave de API no válida. Introduce una clave de API válida. (se ha proporcionado una clave de API no válida)
- INVALID_REFRESH_TOKEN: se ha proporcionado un token de actualización no válido.
- Se ha recibido una carga útil de JSON no válida. Nombre desconocido \"refresh_tokens\": no se puede enlazar la consulta parámetro. No se ha encontrado el campo "refresh_tokens" en el mensaje de solicitud.
- INVALID_GRANT_TYPE: el tipo de concesión especificado no es válido.
- MISSING_REFRESH_TOKEN: no se ha proporcionado ningún token de actualización.
- PROJECT_NUMBER_MISMATCH: el número de proyecto del token de actualización no coincide con el de la clave de API proporcionada.
Registrarse con correo electrónico o contraseña
Para crear un usuario con un correo y una contraseña, debes enviar una solicitud HTTP POST
al endpoint Auth signupNewUser
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | El correo del usuario que se va a crear. |
contraseña | cadena | Contraseña del usuario que se va a crear. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
tenantId | cadena | ID de inquilino del usuario que se va a crear. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Un token de ID de Identity Platform del usuario recién creado. |
correo electrónico | cadena | El correo del usuario recién creado. |
refreshToken | cadena | Un token de actualización de Identity Platform para el usuario recién creado. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
localId | cadena | El uid del usuario recién creado. |
Solicitud de ejemplo
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID y el token de actualización de Identity Platform asociados a la nueva cuenta.
Respuesta de ejemplo
{ "idToken": "[ID_TOKEN]", "email": "[user@example.com]", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "tRcfmLH7..." }
Códigos de error habituales
- EMAIL_EXISTS: otra cuenta ya está usando la dirección de correo.
- OPERATION_NOT_ALLOWED: el inicio de sesión con contraseña está inhabilitado en este proyecto.
- TOO_MANY_ATTEMPTS_TRY_LATER: Hemos bloqueado todas las solicitudes de este dispositivo porque se ha detectado una actividad inusual. . Inténtalo de nuevo más tarde.
Iniciar sesión con correo electrónico o contraseña
Puedes iniciar la sesión de un usuario con un correo y una contraseña enviando una solicitud HTTP POST
al endpoint Auth verifyPassword
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | El correo con el que el usuario inicia sesión. |
contraseña | cadena | La contraseña de la cuenta. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
tenantId | cadena | El ID de inquilino con el que inicia sesión el usuario. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Token de ID de Identity Platform del usuario autenticado. |
correo electrónico | cadena | Correo del usuario autenticado. |
refreshToken | cadena | Un token de actualización de Identity Platform para el usuario autenticado. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
localId | cadena | El UID del usuario autenticado. |
registrada | booleano | Si la dirección de correo pertenece a una cuenta. |
Solicitud de ejemplo
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID y el token de actualización de Identity Platform asociados a la cuenta de correo y contraseña.
Respuesta de ejemplo
{ "localId": "ZY1rJK0eYLg...", "email": "[user@example.com]", "displayName": "", "idToken": "[ID_TOKEN]", "registered": true, "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600" }
Códigos de error habituales
- EMAIL_NOT_FOUND: no hay ningún registro de usuario correspondiente a este identificador. Es posible que el usuario se haya eliminado.
- INVALID_PASSWORD: la contraseña no es válida o el usuario no tiene una contraseña.
- USER_DISABLED: un administrador ha inhabilitado la cuenta de usuario.
Iniciar sesión de forma anónima
Puedes iniciar la sesión de un usuario de forma anónima enviando una solicitud HTTP
POST
al endpoint signupNewUser
de autenticación.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
tenantId | cadena | El ID de inquilino con el que inicia sesión el usuario. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Un token de ID de Identity Platform del usuario recién creado. |
correo electrónico | cadena | Como el usuario es anónimo, este campo debe estar vacío. |
refreshToken | cadena | Un token de actualización de Identity Platform para el usuario recién creado. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
localId | cadena | El uid del usuario recién creado. |
Solicitud de ejemplo
curl 'https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"returnSecureToken":true}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID y el token de actualización de Identity Platform asociados al usuario anónimo.
Respuesta de ejemplo
{ "idToken": "[ID_TOKEN]", "email": "", "refreshToken": "[REFRESH_TOKEN]", "expiresIn": "3600", "localId": "Jws4SVjpT..." }
Códigos de error habituales
- OPERATION_NOT_ALLOWED: el inicio de sesión de usuarios anónimos está inhabilitado en este proyecto.
Iniciar sesión con credenciales de OAuth
Para iniciar la sesión de un usuario con una credencial de OAuth, envía una solicitud HTTP POST
al endpoint verifyAssertion
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
requestUri | cadena | El URI al que el IdP redirige al usuario. |
postBody | cadena | Contiene la credencial de OAuth (un token de ID o un token de acceso) y el ID del proveedor que emite la credencial. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
returnIdpCredential | booleano | Indica si se debe devolver la credencial de OAuth en los siguientes errores: FEDERATED_USER_ID_ALREADY_LINKED y EMAIL_EXISTS. |
tenantId | cadena | El ID de inquilino con el que inicia sesión el usuario. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
federatedId | cadena | El ID único identifica la cuenta del IdP. |
providerId | cadena | El ID del proveedor vinculado (por ejemplo, "google.com" para el proveedor de Google). |
localId | cadena | El UID del usuario autenticado. |
emailVerified | booleano | Indica si el correo de inicio de sesión está verificado. |
correo electrónico | cadena | El correo de la cuenta. |
oauthIdToken | cadena | El token de ID de OIDC, si está disponible. |
oauthAccessToken | cadena | El token de acceso de OAuth, si está disponible. |
oauthTokenSecret | cadena | El secreto del token de OAuth 1.0, si está disponible. |
rawUserInfo | cadena | Respuesta JSON convertida en cadena que contiene todos los datos del proveedor de identidades correspondientes a la credencial de OAuth proporcionada. |
firstName | cadena | El nombre de la cuenta. |
lastName | cadena | El apellido de la cuenta. |
fullName | cadena | El nombre completo de la cuenta. |
displayName | cadena | Nombre visible de la cuenta. |
photoUrl | cadena | URL de la foto de la cuenta. |
idToken | cadena | Token de ID de Identity Platform del usuario autenticado. |
refreshToken | cadena | Un token de actualización de Identity Platform para el usuario autenticado. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
needConfirmation | booleano | Indica si ya existe otra cuenta con las mismas credenciales. El usuario tendrá que iniciar sesión en la cuenta original y, a continuación, vincular la credencial actual a ella. |
Solicitud de ejemplo con token de ID de 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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID de Identity Platform y el token de actualización asociados al usuario autenticado.
Respuesta de ejemplo con token de ID de 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\", ...}" }
Solicitud de ejemplo con token de acceso 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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID de Identity Platform y el token de actualización asociados al usuario autenticado.
Respuesta de ejemplo con token de acceso de 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\", ...}" }
Solicitud de ejemplo con credenciales de OAuth 1.0 de Twitter
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID de Identity Platform y el token de actualización asociados al usuario autenticado.
Respuesta de ejemplo con credenciales de OAuth 1.0 de Twitter
{ "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\", ...}" }
Códigos de error habituales
- OPERATION_NOT_ALLOWED: el proveedor correspondiente está inhabilitado en este proyecto.
- INVALID_IDP_RESPONSE: las credenciales de autenticación proporcionadas tienen un formato incorrecto o han caducado.
Obtener proveedores de correo
Para ver todos los proveedores asociados a un correo específico, envía una solicitud HTTP POST
al endpoint Auth createAuthUri
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
identificador | cadena | Dirección de correo electrónico del usuario |
continueUri | cadena | El URI al que el IdP redirige al usuario. En este caso práctico, se trata de la URL actual. |
tenantId | cadena | El ID de inquilino con el que inicia sesión el usuario. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
allProviders | Lista de cadenas | Lista de proveedores con los que el usuario ha iniciado sesión anteriormente. |
registrada | booleano | Si la dirección de correo pertenece a una cuenta |
Solicitud de ejemplo
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]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene la lista de proveedores asociados al correo.
Respuesta de ejemplo
{ "allProviders": [ "password", "google.com" ], "registered": true }
Códigos de error habituales
- INVALID_EMAIL: el formato de la dirección de correo no es correcto.
Enviar correo de restablecimiento de contraseña
Para enviar un correo de restablecimiento de contraseña, envía una solicitud HTTP POST
al endpoint getOobConfirmationCode
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Nombre de propiedad | Descripción |
---|---|
X-Firebase-Locale | El código de idioma correspondiente a la configuración regional del usuario. Si lo haces, se localizará el correo de restablecimiento de contraseña que se envíe al usuario. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
requestType | cadena | El tipo de código OOB que se va a devolver. Debe ser "PASSWORD_RESET" para restablecer la contraseña. |
correo electrónico | cadena | Dirección de correo del usuario. |
tenantId | cadena | El ID de inquilino del usuario que solicita el cambio de contraseña. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | Dirección de correo del usuario. |
Solicitud de ejemplo
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]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "email": "[user@example.com]" }
Códigos de error habituales
- EMAIL_NOT_FOUND: no hay ningún registro de usuario correspondiente a este identificador. Es posible que el usuario se haya eliminado.
Verificar el código de restablecimiento de contraseña
Puedes verificar un código de restablecimiento de contraseña enviando una solicitud HTTP POST
al endpoint resetPassword
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
oobCode | cadena | El código de acción del correo que se ha enviado a la dirección de correo del usuario para cambiar la contraseña. |
tenantId | cadena | El ID de inquilino del usuario que solicita el cambio de contraseña. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | Dirección de correo del usuario. |
requestType | cadena | Tipo de código de acción de correo. Debe ser "PASSWORD_RESET". |
Solicitud de ejemplo
curl 'https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[PASSWORD_RESET_CODE]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
Códigos de error habituales
- OPERATION_NOT_ALLOWED: el inicio de sesión con contraseña está inhabilitado en este proyecto.
- EXPIRED_OOB_CODE: el código de acción ha caducado.
- INVALID_OOB_CODE: el código de acción no es válido. Esto puede ocurrir si el código tiene un formato incorrecto, ha caducado o ya se ha usado.
Confirmar restablecimiento de contraseña
Para aplicar un cambio de contraseña, envía una solicitud HTTP POST
al endpoint resetPassword
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
oobCode | cadena | El código de acción del correo que se ha enviado a la dirección de correo del usuario para cambiar la contraseña. |
newPassword | cadena | La nueva contraseña del usuario. |
tenantId | cadena | El ID de inquilino del usuario que solicita el cambio de contraseña. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | Dirección de correo del usuario. |
requestType | cadena | Tipo de código de acción de correo. Debe ser "PASSWORD_RESET". |
Solicitud de ejemplo
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]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "email": "[user@example.com]", "requestType": "PASSWORD_RESET" }
Códigos de error habituales
- OPERATION_NOT_ALLOWED: el inicio de sesión con contraseña está inhabilitado en este proyecto.
- EXPIRED_OOB_CODE: el código de acción ha caducado.
- INVALID_OOB_CODE: el código de acción no es válido. Esto puede ocurrir si el código tiene un formato incorrecto, ha caducado o ya se ha usado.
- USER_DISABLED: un administrador ha inhabilitado la cuenta de usuario.
Cambiar correo
Para cambiar el correo de un usuario, envía una solicitud HTTP POST
al endpoint setAccountInfo
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nombre de propiedad | Descripción |
---|---|
X-Firebase-Locale | El código de idioma correspondiente a la configuración regional del usuario. Si se incluye este parámetro, se localizará la revocación del cambio de correo que se envía al usuario. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Un token de ID de Identity Platform del usuario. |
correo electrónico | cadena | El nuevo correo del usuario. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
localId | cadena | El uid del usuario actual. |
correo electrónico | cadena | Dirección de correo del usuario. |
passwordHash | cadena | Versión hash de la contraseña. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
idToken | cadena | Nuevo token de ID de Identity Platform del usuario. |
refreshToken | cadena | Un token de actualización de Identity Platform. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
Solicitud de ejemplo
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el nuevo token de ID de Identity Platform y el token de actualización asociados al usuario.
Respuesta de ejemplo
{ "localId": "tRcfmLH7o2...", "email": "[user@example2.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example2.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
Códigos de error habituales
- EMAIL_EXISTS: otra cuenta ya está usando la dirección de correo.
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
Cambiar contraseña
Puedes cambiar la contraseña de un usuario enviando una solicitud HTTP POST
al endpoint Auth setAccountInfo
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Un token de ID de Identity Platform del usuario. |
contraseña | cadena | Nueva contraseña del usuario. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
localId | cadena | El uid del usuario actual. |
correo electrónico | cadena | Dirección de correo del usuario. |
passwordHash | cadena | Versión hash de la contraseña. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
idToken | cadena | Nuevo token de ID de Identity Platform del usuario. |
refreshToken | cadena | Un token de actualización de Identity Platform. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
Solicitud de ejemplo
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el nuevo token de ID de Identity Platform y el token de actualización asociados al usuario.
Respuesta de ejemplo
{ "localId": "tRcfmLH7o2...", "email": "[user@example.com]", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "[user@example.com]" } ], "idToken": "[NEW_ID_TOKEN]", "refreshToken": "[NEW_REFRESH_TOKEN]", "expiresIn": "3600" }
Códigos de error habituales
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- WEAK_PASSWORD: la contraseña debe tener 6 caracteres o más.
Actualizar perfil
Puedes actualizar el perfil de un usuario (nombre visible o URL de la foto) enviando una solicitud HTTP POST
al endpoint setAccountInfo
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | Un token de ID de Identity Platform del usuario. |
displayName | cadena | Nuevo nombre visible del usuario. |
photoUrl | cadena | URL de la nueva foto del usuario. |
deleteAttribute | Lista de cadenas | Lista de atributos que se van a eliminar ("DISPLAY_NAME" o "PHOTO_URL"). Esto anulará estos valores. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
localId | cadena | El uid del usuario actual. |
correo electrónico | cadena | Dirección de correo del usuario. |
displayName | cadena | Nuevo nombre visible del usuario. |
photoUrl | cadena | URL de la nueva foto del usuario. |
passwordHash | cadena | Versión hash de la contraseña. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
idToken | cadena | Nuevo token de ID de Identity Platform del usuario. |
refreshToken | cadena | Un token de actualización de Identity Platform. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
Solicitud de ejemplo
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "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" }
Códigos de error habituales
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
Obtener datos de usuario
Para obtener los datos de un usuario, envía una solicitud HTTP POST
al endpoint getAccountInfo
de autenticación.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | El token de ID de Identity Platform de la cuenta. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
users | Lista de objetos JSON | La cuenta asociada al token de ID de Identity Platform proporcionado. Consulta más detalles a continuación. |
users
)
Nombre de propiedad | Tipo | Descripción |
---|---|---|
localId | cadena | El uid del usuario actual. |
correo electrónico | cadena | El correo de la cuenta. |
emailVerified | booleano | Si se ha verificado o no el correo de la cuenta. |
displayName | cadena | Nombre visible de la cuenta. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
photoUrl | cadena | URL de la foto de la cuenta. |
passwordHash | cadena | Versión hash de la contraseña. |
passwordUpdatedAt | doble | Marca de tiempo en milisegundos de la última vez que se cambió la contraseña de la cuenta. |
validSince | cadena | Marca de tiempo, en segundos, que marca un límite antes del cual se considera que los tokens de ID de Identity Platform se han revocado. |
inhabilitada | booleano | Si la cuenta está inhabilitada o no. |
lastLoginAt | cadena | Marca de tiempo, en milisegundos, de la última vez que se inició sesión en la cuenta. |
createdAt | cadena | Marca de tiempo, en milisegundos, en la que se creó la cuenta. |
customAuth | booleano | Si el desarrollador ha autenticado la cuenta. |
tenantId | cadena | El ID de arrendatario del usuario. Solo se devuelve en la arquitectura multicliente. |
Solicitud de ejemplo
curl 'https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contendrá toda la información del usuario asociada a la cuenta.
Respuesta de ejemplo
{ "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 } ] }
Códigos de error habituales
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- USER_NOT_FOUND: no hay ningún registro de usuario correspondiente a este identificador. Es posible que el usuario se haya eliminado.
Vincular con correo y contraseña
Para vincular un correo y una contraseña a un usuario actual, envía una solicitud HTTP POST
al endpoint setAccountInfo
de autenticación.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | El token de ID de Identity Platform de la cuenta a la que estás intentando vincular la credencial. |
correo electrónico | cadena | El correo para vincularlo a la cuenta. |
contraseña | cadena | La nueva contraseña de la cuenta. |
returnSecureToken | cadena | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
localId | cadena | El uid del usuario actual. |
correo electrónico | cadena | El correo de la cuenta. |
displayName | cadena | Nombre visible de la cuenta. |
photoUrl | cadena | URL de la foto de la cuenta. |
passwordHash | cadena | Versión hash de la contraseña. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
emailVerified | booleano | Si se ha verificado o no el correo de la cuenta. |
idToken | cadena | Nuevo token de ID de Identity Platform del usuario. |
refreshToken | cadena | Un token de actualización de Identity Platform. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
Solicitud de ejemplo
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID y el token de actualización de Identity Platform asociados al usuario autenticado.
Respuesta de ejemplo
{ "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 }
Códigos de error habituales
- CREDENTIAL_TOO_OLD_LOGIN_AGAIN: las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- TOKEN_EXPIRED: las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- WEAK_PASSWORD: la contraseña debe tener 6 caracteres o más.
Vincular con credenciales de OAuth
Para vincular una credencial de OAuth a un usuario, envía una solicitud HTTP POST
al endpoint verifyAssertion
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | El token de ID de Identity Platform de la cuenta a la que estás intentando vincular la credencial. |
requestUri | cadena | El URI al que el IdP redirige al usuario. |
postBody | cadena | Contiene la credencial de OAuth (un token de ID o un token de acceso) y el ID del proveedor que emite la credencial. |
returnSecureToken | booleano | Indica si se debe devolver un ID y un token de actualización. Siempre debe ser true. |
returnIdpCredential | booleano | Indica si se debe devolver la credencial de OAuth en los siguientes errores: FEDERATED_USER_ID_ALREADY_LINKED y EMAIL_EXISTS. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
federatedId | cadena | El ID único identifica la cuenta del IdP. |
providerId | cadena | El ID del proveedor vinculado (por ejemplo, "google.com" para el proveedor de Google). |
localId | cadena | El UID del usuario autenticado. |
emailVerified | booleano | Indica si el correo de inicio de sesión está verificado. |
correo electrónico | cadena | El correo de la cuenta. |
oauthIdToken | cadena | El token de ID de OIDC, si está disponible. |
oauthAccessToken | cadena | El token de acceso de OAuth, si está disponible. |
oauthTokenSecret | cadena | El secreto del token de OAuth 1.0, si está disponible. |
rawUserInfo | cadena | Respuesta JSON convertida en cadena que contiene todos los datos del proveedor de identidades correspondientes a la credencial de OAuth proporcionada. |
firstName | cadena | El nombre de la cuenta. |
lastName | cadena | El apellido de la cuenta. |
fullName | cadena | El nombre completo de la cuenta. |
displayName | cadena | Nombre visible de la cuenta. |
photoUrl | cadena | URL de la foto de la cuenta. |
idToken | cadena | Token de ID de Identity Platform del usuario autenticado. |
refreshToken | cadena | Un token de actualización de Identity Platform para el usuario autenticado. |
expiresIn | cadena | Número de segundos en los que caduca el token de ID. |
Solicitud de ejemplo con token de ID de 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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID de Identity Platform y el token de actualización asociados al usuario autenticado.
Respuesta de ejemplo con token de ID de 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\", ...}" }
Solicitud de ejemplo con token de acceso 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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID de Identity Platform y el token de actualización asociados al usuario autenticado.
Respuesta de ejemplo con token de acceso de 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\", ...}" }
Solicitud de ejemplo con credenciales de OAuth 1.0 de Twitter
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}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
. La respuesta contiene el token de ID de Identity Platform y el token de actualización asociados al usuario autenticado.
Respuesta de ejemplo con credenciales de OAuth 1.0 de Twitter
{ "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\", ...}" }
Códigos de error habituales
- OPERATION_NOT_ALLOWED: el proveedor correspondiente está inhabilitado en este proyecto.
- INVALID_IDP_RESPONSE: las credenciales de autenticación proporcionadas tienen un formato incorrecto o han caducado.
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- EMAIL_EXISTS: otra cuenta ya está usando la dirección de correo.
- FEDERATED_USER_ID_ALREADY_LINKED: Esta credencial ya está asociada a otra cuenta de usuario.
Desvincular proveedor
Para desvincular un proveedor de un usuario, envía una solicitud HTTP
POST
al endpoint Auth setAccountInfo
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | El token de ID de Identity Platform de la cuenta. |
deleteProvider | Lista de cadenas | Lista de IDs de proveedores que se van a desvincular. Por ejemplo: "google.com", "password", etc. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
localId | cadena | El uid del usuario actual. |
correo electrónico | cadena | El correo de la cuenta. |
displayName | cadena | Nombre visible de la cuenta. |
photoUrl | cadena | URL de la foto de la cuenta. |
passwordHash | cadena | Versión hash de la contraseña. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
emailVerified | booleano | Si se ha verificado o no el correo de la cuenta. |
Solicitud de ejemplo
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]"]}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "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" }
Códigos de error habituales
- INVALID_ID_TOKEN: las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
Enviar verificación por correo electrónico
Para enviar una verificación por correo electrónico al usuario actual, envía una solicitud HTTP POST
al endpoint getOobConfirmationCode
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Nombre de propiedad | Descripción |
---|---|
X-Firebase-Locale | El código de idioma correspondiente a la configuración regional del usuario. Si se aprueba, se localizará la verificación de correo enviada al usuario. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
requestType | cadena | El tipo de código de confirmación que se va a enviar. Siempre debe ser "VERIFY_EMAIL". |
idToken | cadena | Token de ID de Identity Platform del usuario que se va a verificar. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | El correo de la cuenta. |
Solicitud de ejemplo
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]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "email": "user@example.com" }
Códigos de error habituales
- INVALID_ID_TOKEN: las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- USER_NOT_FOUND: no hay ningún registro de usuario correspondiente a este identificador. Es posible que el usuario se haya eliminado.
Confirmar la verificación por correo electrónico
Puedes confirmar un código de verificación de correo electrónico enviando una solicitud HTTP POST
al endpoint setAccountInfo
de Auth.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
oobCode | cadena | El código de acción que se ha enviado al correo del usuario para verificar la dirección. |
tenantId | cadena | El ID de inquilino del usuario que verifica el correo. Solo se usa en arquitecturas multicliente. |
Nombre de propiedad | Tipo | Descripción |
---|---|---|
correo electrónico | cadena | El correo de la cuenta. |
displayName | cadena | Nombre visible de la cuenta. |
photoUrl | cadena | URL de la foto de la cuenta. |
passwordHash | cadena | El hash de la contraseña. |
providerUserInfo | Lista de objetos JSON | Lista de todos los objetos de proveedor vinculados que contienen "providerId" y "federatedId". |
emailVerified | booleano | Si se ha verificado o no el correo de la cuenta. |
Solicitud de ejemplo
curl 'https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"oobCode":"[VERIFICATION_CODE]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Respuesta de ejemplo
{ "localId": "FhyStE...", "email": "user@example.com", "passwordHash": "...", "providerUserInfo": [ { "providerId": "password", "federatedId": "user@example.com" } ] }
Códigos de error habituales
- EXPIRED_OOB_CODE: el código de acción ha caducado.
- INVALID_OOB_CODE: el código de acción no es válido. Esto puede ocurrir si el código tiene un formato incorrecto, ha caducado o ya se ha usado.
- USER_DISABLED: un administrador ha inhabilitado la cuenta de usuario.
- EMAIL_NOT_FOUND: no hay ningún registro de usuario correspondiente a este identificador. Es posible que el usuario se haya eliminado.
Eliminar cuenta
Para eliminar un usuario, envía una solicitud HTTP POST
al endpoint Auth deleteAccount
.
Método: POST
Content-Type: application/json
Endpointhttps://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Nombre de propiedad | Tipo | Descripción |
---|---|---|
idToken | cadena | El token de ID de Identity Platform del usuario que se va a eliminar. |
Nombre de propiedad | Tipo | Descripción |
---|
Solicitud de ejemplo
curl 'https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]' \ -H 'Content-Type: application/json' --data-binary '{"idToken":"[GCIP_ID_TOKEN]"}'
Una solicitud correcta se indica con un código de estado HTTP 200 OK
.
Códigos de error habituales
- INVALID_ID_TOKEN:las credenciales del usuario ya no son válidas. El usuario debe volver a iniciar sesión.
- USER_NOT_FOUND: no hay ningún registro de usuario correspondiente a este identificador. Es posible que el usuario se haya eliminado.
Gestionar errores
A continuación se muestra un ejemplo de un error habitual devuelto por Identity Platform:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
}
],
"code": 400,
"message": "CREDENTIAL_TOO_OLD_LOGIN_AGAIN"
}
}
Obtén el código de error del campo message
.