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:

  1. Ve a la página Proveedores de identidades de la consola de Google Cloud .
    Ve a la página Proveedores de identidades

  2. Haz clic en Detalles de la configuración de la aplicación.

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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Reivindicaciones de token personalizadas
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.
Carga útil de la respuesta
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

Endpoint
https://securetoken.googleapis.com/v1/token?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Encabezados opcionales
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.
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:resetPassword?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Encabezados opcionales
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.
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=[API_KEY]
Carga útil del cuerpo de la solicitud
Nombre de propiedad Tipo Descripción
idToken cadena El token de ID de Identity Platform de la cuenta.
Carga útil de la respuesta
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.
Carga útil de la respuesta (contenido de la matriz 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.

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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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.

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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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.

Para desvincular un proveedor de un usuario, envía una solicitud HTTP POST al endpoint Auth setAccountInfo.

Método: POST

Content-Type: application/json

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[API_KEY]
Encabezados opcionales
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.
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:update?key=[API_KEY]
Carga útil del cuerpo de la solicitud
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.
Carga útil de la respuesta
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

Endpoint
https://identitytoolkit.googleapis.com/v1/accounts:delete?key=[API_KEY]
Carga útil del cuerpo de la solicitud
Nombre de propiedad Tipo Descripción
idToken cadena El token de ID de Identity Platform del usuario que se va a eliminar.
Carga útil de la respuesta
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.