Personalizar el flujo de autenticación con funciones asíncronas

En este documento se explica cómo ampliar la autenticación de Identity Platform mediante funciones de Cloud Run asíncronas.

Las funciones asíncronas te permiten activar tareas no bloqueadoras en respuesta a la creación y eliminación de usuarios. Son útiles para iniciar operaciones de larga duración o realizar tareas auxiliares, como enviar un correo de bienvenida.

Para modificar directamente el resultado de una operación de autenticación, consulta Ampliar la autenticación con funciones de bloqueo. El objeto de usuario que recibe una función asíncrona no contiene actualizaciones de la función de bloqueo.

Antes de empezar

Crea una aplicación con Identity Platform. Consulta la guía de inicio rápido para saber cómo hacerlo.

Crear una función asíncrona

Para crear y desplegar una función asíncrona, sigue los pasos que se indican en el artículo Empezar: escribir, probar y desplegar tus primeras funciones.

Responder a la creación de usuarios

El evento onCreate se activa cada vez que se crea una cuenta de usuario. Esto incluye las sesiones anónimas y las cuentas creadas con el SDK de administrador. La función no se activa cuando un usuario inicia sesión por primera vez con un token personalizado.

En el siguiente ejemplo se muestra cómo registrar un controlador para onCreate:

Node.js

exports.myFunction = functions.auth.user().onCreate((user) => {
  // TODO.
});

Responder a la eliminación de usuarios

El evento onDelete se activa cada vez que se elimina una cuenta de usuario. En el siguiente ejemplo se muestra cómo registrar un controlador para onDelete:

Node.js

exports.myFunction = functions.auth.user().onDelete((user) => {
  // TODO.
});

Obtener información de los usuarios

Los eventos onCreate y onDelete proporcionan objetos User y EventContext que contienen información sobre el usuario creado o eliminado. Por ejemplo:

Node.js

exports.myFunction = functions.auth.user().onCreate((user, context) => {
  const email = user.email; // The email of the user.
  const displayName = user.displayName; // The display name of the user.
});

Consulta la referencia de la API UserRecord y la referencia de la API EventContext para ver una lista de los campos disponibles.

Siguientes pasos