Personnaliser le flux d'authentification à l'aide de fonctions asynchrones
Ce document explique comment étendre l'authentification Identity Platform à l'aide de fonctions Cloud Run asynchrones.
Les fonctions asynchrones vous permettent de déclencher des tâches non bloquantes en réponse à la création et à la suppression d'utilisateurs. Elles sont utiles pour lancer des opérations de longue durée ou pour effectuer des tâches auxiliaires, comme l'envoi d'un e-mail de bienvenue.
Pour modifier directement le résultat d'une opération d'authentification, consultez Étendre l'authentification avec des fonctions de blocage. L'objet utilisateur reçu par une fonction asynchrone ne contient pas de la fonction de blocage.
Avant de commencer
Créer une application avec Identity Platform Pour savoir comment, consultez le guide de démarrage rapide.
Créer une fonction asynchrone
Pour créer et déployer une fonction asynchrone, suivez la procédure décrite sur la page Premiers pas : écrire, tester et déployer vos premières fonctions.
Répondre à la création d'utilisateurs
L'événement onCreate
se déclenche chaque fois qu'un compte utilisateur est créé. Cela inclut les sessions et les comptes anonymes créés avec le SDK Admin. La fonction ne se déclenche pas lorsqu'un utilisateur se connecte pour la première fois à l'aide d'un jeton personnalisé.
L'exemple suivant montre comment enregistrer un gestionnaire pour onCreate
:
Node.js
exports.myFunction = functions.auth.user().onCreate((user) => {
// TODO.
});
Répondre à la suppression d'un utilisateur
L'événement onDelete
se déclenche chaque fois qu'un compte utilisateur est supprimé. L'exemple suivant montre comment enregistrer un gestionnaire pour onDelete
:
Node.js
exports.myFunction = functions.auth.user().onDelete((user) => {
// TODO.
});
Obtenir des informations sur les utilisateurs
Les événements onCreate
et onDelete
fournissent des objets User
et EventContext
contenant des informations sur l'utilisateur créé ou supprimé. Exemple :
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.
});
Consultez la documentation de référence de l'API UserRecord
et la documentation de référence sur l'API EventContext
pour obtenir la liste des champs disponibles.
Étape suivante
- Étendre l'authentification avec des fonctions de blocage.
- En savoir plus sur les fonctions Cloud Run.