Como personalizar o fluxo de autenticação usando funções assíncronas

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

Funções assíncronas permitem que você acione tarefas sem bloqueio em resposta à criação e exclusão de usuários. Eles são úteis para iniciar operações de longa duração ou executar tarefas auxiliares, como enviar um e-mail de boas-vindas.

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

Antes de começar

Crie um app com o Identity Platform. Consulte o Guia de início rápido para saber como.

Como criar uma função assíncrona

Para criar e implantar uma função assíncrona, siga as etapas em Primeiros passos: gravar, testar e implantar suas primeiras funções.

Como responder à criação de usuários

O evento onCreate é acionado sempre que uma conta de usuário é criada. Isso inclui sessões anônimas e contas criadas com o SDK Admin. A função não é acionada quando um usuário faz login pela primeira vez usando um token personalizado.

O exemplo a seguir mostra como registrar um gerenciador para onCreate.

Node.js

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

Como responder à exclusão de um usuário

O evento onDelete é acionado sempre que uma conta de usuário é excluída. O exemplo a seguir mostra como registrar um gerenciador para onDelete.

Node.js

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

Como acessar informações do usuário

Os eventos onCreate e onDelete fornecem objetos User e EventContext que contêm informações sobre o usuário criado ou excluído. 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 referência da API UserRecord e a referência da API EventContext para uma lista de campos disponíveis.

A seguir