Menu Docs

Página inicial do DocsServiços Atlas App

Gatilhos de autenticação

Nesta página

  • Criar um trigger de autenticação
  • Configuração
  • evento de autenticação
  • Exemplo
  • Exemplos adicionais

Um trigger de autenticação é acionado quando um usuário interage com um provedor de autenticação. Você pode usar trigger de autenticação para implementar o gerenciamento avançado de usuários. Alguns usos incluem:

  • Armazenando novos dados de usuário em seu cluster vinculado

  • Manutenção da integridade dos dados após a exclusão do usuário

  • Chamando um serviço com as informações de um usuário quando ele faz login.

Os triggers de autenticação têm as seguintes opções de configuração:

Campo
Descrição
Trigger Type
O tipo do trigger. Para trigger de autenticação, defina este valor como AUTHENTICATION.
Trigger Name
O nome do trigger.
Linked Function
O nome da função que o trigger executa quando é disparado. Um objeto de evento de autenticação faz com que o trigger seja acionado. Este objeto é o único argumento que o trigger passa para a função.
Operation Type
O tipo de operação de autenticação que faz com que o trigger seja acionado.
Providers
Uma lista de um ou mais tipos de fornecedor de autenticação . O trigger escuta apenas eventos de autenticação produzidos por esses fornecedores.

Os evento de autenticação representam interações do usuário com um provedor de autenticação. Cada evento corresponde a uma única ação do usuário com um dos seguintes tipos de operação:

Tipo de operação
Descrição
LOGIN
Representa uma única instância de um usuário que faz login.
CREATE
Representa a criação de um novo usuário.
DELETE
Representa a exclusão de um usuário.

Objetos de evento de autenticação têm o seguinte formulário:

{
"operationType": <string>,
"providers": <array of strings>,
"user": <user object>,
"time": <ISODate>
}
Campo
Descrição
operationType
O tipo de operação do evento de autenticação.
providers

Os provedor de autenticação que emitiram o evento.

Um dos seguintes nomes representa cada fornecedor de autenticação:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

Observação

Geralmente, apenas um fornecedor de autenticação emite cada evento. No entanto, talvez seja necessário excluir um usuário vinculado a vários fornecedores. Neste caso, o evento DELETE para este usuário inclui todos os fornecedores vinculados.

user
O objeto de usuário do usuário que interagiu com o provedor de autenticação.
time
A hora em que o evento ocorreu.

Uma loja online deseja armazenar metadados personalizados para cada um de seus clientes no Atlas. Cada cliente precisa de um documento na coleção store.customers . Em seguida, a loja pode gravar e consultar metadados no documento do cliente.

A coleção deve representar cada cliente. Para garantir isso, a loja cria um gatilho de autenticação. Esse trigger escuta usuários recém-criados no provedor de autenticação de e- mail/senha . Em seguida, ele passa o objeto de evento de autenticação para sua função vinculada, createNewUserDocument. A função cria um novo documento que descreve o usuário e sua atividade. A função então insere o documento na collection store.customers .

createNewUserDocument
exports = async function(authEvent) {
const mongodb = context.services.get("mongodb-atlas");
const customers = mongodb.db("store").collection("customers");
const { user, time } = authEvent;
const isLinkedUser = user.identities.length > 1;
if(isLinkedUser) {
const { identities } = user;
return users.updateOne(
{ id: user.id },
{ $set: { identities } }
)
} else {
return users.insertOne({ _id: user.id, ...user })
.catch(console.error)
}
await customers.insertOne(newUser);
}

Para obter exemplos adicionais de Triggers integrados a um aplicativo App Services, confira o exemplo de Triggers no Github.

← Gatilhos de banco de dados