Gatilhos de autenticação
Nesta página
A partir de 2024 de setembro , os Atlas Device SDKs ficarão obsoletos e chegarão ao fim da vida útil em 2025 de setembro . Isso afetará os triggers de autenticação, porque eles não terão mais eventos de autenticação para React .
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.
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 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. |
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. 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:
|
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. |
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 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
.
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); }