Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ /

Gatilhos de autenticação

Nesta página

  • Configuração
  • evento de autenticação
  • Exemplo

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

  • Armazenando novos dados do usuário em seu cluster vinculado.

  • Manter a 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 triggers de autenticação, defina este valor como AUTHENTICATION.
Trigger Name
O nome do gatilho.
Linked Function
O nome dafunção que o trigger executa quando é disparado. Este objeto é o único argumento que o trigger passa para a função depois que um objeto de evento de autenticação faz com que o trigger seja acionado.
Operation Type
O tipo de operação de autenticação que faz o trigger ser disparado.
Providers
Uma lista de um ou mais tipos de provedor 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. Se o usuário excluído estiver vinculado a vários fornecedores, o evento DELETE desse usuário incluirá todos os fornecedores vinculados.

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 fornecedores de autenticação que emitiram o evento. Um dos seguintes nomes representa cada provedor de autenticação:

  • "anon-user"

  • "local-userpass"

  • "api-key"

  • "custom-token"

  • "custom-function"

  • "oauth2-facebook"

  • "oauth2-google"

  • "oauth2-apple"

user
O objeto do 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 trigger de autenticação. Esse trigger escuta usuários recém-criados no provedor de autenticação de e-mail/senha e, em seguida, passa o objeto de evento de autenticação para sua função vinculada createNewUserDocument.

A função createNewUserDocument cria um novo documento que descreve o usuário e sua atividade. A função então insere o documento na coleção store.customers .

Função 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);
}

Dica

Veja também:

Voltar

Gatilhos programados