Página inicial do Docs → Serviços Atlas App
Gatilhos de autenticação
Nesta página
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.
Criar um trigger de autenticação
Configuração
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. |
evento de autenticação
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:
ObservaçãoGeralmente, 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 |
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. |
Exemplo
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
.
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); }
Exemplos adicionais
Para obter exemplos adicionais de Triggers integrados a um aplicativo App Services, confira o exemplo de Triggers no Github.