Personalizzazione del flusso di autenticazione mediante 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 degli 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 della funzione di blocco.

Prima di iniziare

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

Creazione di una funzione asincrona

Per creare ed eseguire il deployment di una funzione asincrona, segui i passaggi descritti in Iniziare: scrivere, testare ed eseguire il deployment delle prime funzioni.

Rispondere alla creazione degli utenti

L'evento onCreate viene attivato ogni volta che viene creato un account utente. Sono inclusi gli account e le sessioni anonime creati con l'SDK Admin. La funzione non si attiva 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 viene attivato 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.
});

Ottenere informazioni sugli utenti

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.
});

Per un elenco dei campi disponibili, consulta il riferimento all'API UserRecord e il riferimento all'API EventContext.

Passaggi successivi