Menu Docs
Página inicial do Docs
/ /
Serviç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.

Para abrir a tela de configuração do trigger de autenticação na interface do usuário do Atlas App Services , clique em Triggers no menu de navegação esquerdo, clique em Create a Trigger e selecione a guia Authentication ao lado de Trigger Type.

Configure o trigger e clique em Save na parte inferior da página para adicioná-lo ao esquema de implantação atual.

Um exemplo de um trigger de autenticação configurado na UI
clique para ampliar

Para criar um trigger de autenticação com o App Services CLI:

  1. Adicione um arquivo de configuração do trigger de autenticação ao subdiretório triggers de um diretório de aplicação local.

    Observação

    O App Services não impõe nomes de arquivo específicos para arquivos de configuração do Atlas trigger . No entanto, depois de importado, o App Services renomeará cada arquivo de configuração para corresponder ao nome do trigger que ele define, por exemplo mytrigger.json.

  2. Implante o trigger:

    appservices push

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.
Action 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.
Event Type
Escolha qual ação será executada quando o trigger for acionado. Você pode optar por executar uma função ou usar AWS Eventbridge.
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.
Trigger Name
O nome do trigger.

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 trigger 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 .

Exemplo de IU que configura o trigger
Configuração do trigger
{
"type": "AUTHENTICATION",
"name": "newUserHandler",
"function_name": "createNewUserDocument",
"config": {
"providers": ["local-userpass"],
"operation_type": "CREATE"
},
"disabled": false
}
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);
}

For additional examples of Triggers integrated into an App Services App, checkout the exemplo Triggers on Github.

Voltar

Gatilhos de banco de dados