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 l'esecuzione di 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 le 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 una funzione asincrona ed eseguirne il deployment, segui i passaggi riportati in Per iniziare: scrivi, testa ed esegui il deployment delle tue prime funzioni.

Rispondere alla creazione degli utenti

L'evento onCreate viene attivato ogni volta che viene creato un account utente. Sono inclusi sessioni e account anonimi creati con SDK Admin. La funzione non si attivano 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