Personalizzazione del flusso di autenticazione utilizzando funzioni asincrone

Questo documento mostra come estendere l'autenticazione di Identity Platform utilizzando le funzioni Cloud Run asincrone.

Le funzioni asincrone ti consentono di attivare attività non bloccanti in risposta alla creazione e all'eliminazione di utenti. Sono utili per avviare operazioni a lunga esecuzione o per eseguire attività ausiliarie, come l'invio di un'email di benvenuto.

Per modificare direttamente il risultato di un'operazione di autenticazione, consulta Estensione dell'autenticazione con funzioni di blocco. L'oggetto utente ricevuto da una funzione asincrona non contiene aggiornamenti dalla funzione di blocco.

Prima di iniziare

Crea un'app con Identity Platform. Per scoprire come fare, consulta la guida rapida.

Creazione di una funzione asincrona

Per creare ed eseguire il deployment di una funzione asincrona, segui i passaggi descritti in Guida introduttiva: scrivi, testa ed esegui il deployment delle tue prime funzioni.

Rispondere alla creazione di utenti

L'evento onCreate si attiva ogni volta che viene creato un account utente. Sono incluse le sessioni anonime e gli account creati con l'SDK Admin. La funzione non viene attivata quando un utente accede per la prima volta utilizzando un token personalizzato.

L'esempio seguente mostra come registrare un gestore per onCreate:

Node.js

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

Rispondere all'eliminazione dell'utente

L'evento onDelete si attiva ogni volta che viene eliminato un account utente. L'esempio seguente mostra come registrare un gestore per onDelete:

Node.js

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

Recupero delle informazioni utente

Gli eventi onCreate e onDelete forniscono oggetti User e EventContext che contengono informazioni sull'utente creato o eliminato. Ad esempio:

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 il riferimento API UserRecord e il riferimento API EventContext per un elenco dei campi disponibili.

Passaggi successivi