Personalizar o fluxo de autenticação através de funções assíncronas

Este documento mostra como estender a autenticação da Identity Platform usando funções do Cloud Run assíncronas.

As funções assíncronas permitem-lhe acionar tarefas não bloqueadoras em resposta à criação e eliminação de utilizadores. São úteis para iniciar operações de longa duração ou realizar tarefas auxiliares, como enviar um email de boas-vindas.

Para modificar diretamente o resultado de uma operação de autenticação, consulte o artigo Extender a autenticação com funções de bloqueio. O objeto do utilizador que uma função assíncrona recebe não contém atualizações da função de bloqueio.

Antes de começar

Crie uma app com a Identity Platform. Consulte o início rápido para saber como.

Criar uma função assíncrona

Para criar e implementar uma função assíncrona, siga os passos descritos no artigo Introdução: escreva, teste e implemente as suas primeiras funções.

Responder à criação de utilizadores

O evento onCreate é acionado sempre que é criada uma conta de utilizador. Isto inclui sessões anónimas e contas criadas com o SDK de administrador. A função não é acionada quando um utilizador inicia sessão pela primeira vez com um token personalizado.

O exemplo seguinte mostra como registar um controlador para onCreate:

Node.js

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

Responder à eliminação de utilizadores

O evento onDelete é acionado sempre que uma conta de utilizador é eliminada. O exemplo seguinte mostra como registar um controlador para onDelete:

Node.js

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

A obter informações do utilizador

Os eventos onCreate e onDelete fornecem objetos User e EventContext que contêm informações sobre o utilizador criado ou eliminado. Por exemplo:

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

Consulte a UserRecord referência da API e a EventContext referência da API para ver uma lista dos campos disponíveis.

O que se segue?