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

En este documento, se muestra cómo extender la autenticación de Identity Platform con funciones de Cloud Run asíncronas.

Las funciones asíncronas te permiten activar tareas sin bloqueo 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 electrónico de bienvenida.

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

Antes de comenzar

Crea una app con Identity Platform. Consulta la Guía de inicio rápido para aprender a hacerlo.

Crea una función asíncrona

Para crear e implementar una función asíncrona, sigue los pasos que se indican en Primeros pasos: Escribe, prueba e implementa tus primeras funciones.

Responde a la creación de un usuario

El evento onCreate se activa cada vez que se crea una cuenta de usuario. Esto incluye las cuentas anónimas y las cuentas que se crearon con el SDK de Admin. La función no se activa cuando un usuario accede 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.
});

Responde a la eliminación de un usuario

El evento onDelete se activa cada vez que se borra 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.
});

Obtén información del usuario

Los eventos onCreate y onDelete proporcionan objetos User y EventContext que contienen información sobre el usuario que se creó o se borró. 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 las referencias de las API de UserRecord y EventContext para ver una lista de los campos disponibles.

Próximos pasos