Actions
As Actions do Logto permitem que você execute JavaScript confiável em pontos específicos do fluxo de autenticação. Uma action é executada de forma síncrona: a solicitação de autenticação aguarda o script, e o resultado do script pode atualizar o usuário ou determinar se o fluxo continua.
As actions são úteis quando a decisão precisa acontecer dentro do fluxo de autenticação. Casos de uso comuns incluem:
- Migrar usuários e senhas de um sistema de identidade legado quando eles fazem login pela primeira vez.
- Atualizar o perfil do usuário ou dados específicos do aplicativo antes que o Logto conclua um login.
- Chamar um serviço externo e aplicar seu resultado ao usuário do Logto.
As actions estão disponíveis no Logto OSS e nos planos Enterprise do Logto Cloud.
Os scripts de action podem afetar a autenticação e modificar dados do usuário. Apenas administradores confiáveis devem ter permissão para visualizar, criar, editar, testar, habilitar ou excluir esses scripts.
Em implantações self-hosted, os scripts de action são executados em uma máquina virtual dentro do processo do Logto. Trate-os como código confiável do lado do servidor, não como uma barreira de segurança para código não confiável.
Como as Actions se encaixam no login
O Logto atualmente fornece dois tipos de action:
| Tipo de action | Quando é executada | O que pode fazer |
|---|---|---|
| Pós-verificação do primeiro fator | Durante um login com senha, somente após a verificação da senha local do Logto falhar. Não é executada quando a senha local é válida. | Verificar as credenciais enviadas em um sistema legado, depois criar um novo usuário Logto ou atualizar um usuário existente e migrar a senha enviada. |
| Pós-login | Após o usuário concluir todos os fatores de autenticação, incluindo MFA quando necessário, e antes do Logto concluir o login e emitir tokens. | Atualizar e enriquecer o usuário Logto existente usando o contexto final do login. |
Ambos os tipos de action são executados apenas para interações SignIn na Experience API. A pós-verificação do primeiro fator se aplica apenas ao login com senha; a pós-login é independente do método de autenticação.
Modelo de script
Cada tipo de action possui uma configuração e uma função de entrada JavaScript chamada runAction:
const runAction = async ({ event, environmentVariables = {} }) => {
// Inspecione o evento, opcionalmente busque dados externos e retorne
// um resultado suportado por este tipo de action.
};
O payload contém:
event: O evento de autenticação em produção. Sua estrutura depende do tipo de action.environmentVariables: Os valores de string configurados para esta action. Esses valores são passados pelo payload da função; não estão disponíveis viaprocess.env.
O editor fornece informações de tipo, mas o script salvo é executado como JavaScript. O script pode ser assíncrono e pode usar a função fetch injetada para chamar APIs HTTPS externas. Não pode importar pacotes ou acessar globais do Node.js como require ou process.
O resultado suportado é diferente para cada tipo de action; consulte a página de referência correspondente antes de habilitar uma Action.
Actions e Webhooks
As Actions e os Webhooks têm propósitos diferentes:
| Actions | Webhooks | |
|---|---|---|
| Execução | Síncrona e em linha com a autenticação | Assíncrona e fora da solicitação de autenticação |
| Pode afetar o fluxo de autenticação atual | Sim | Não |
| Pode modificar um usuário a partir do resultado | Sim, usando o patch de usuário suportado | Não diretamente; o receptor pode chamar a Management API separadamente |
| Cobertura de eventos | Pontos de autenticação selecionados | Um amplo conjunto de eventos de interação e alteração de dados |
| Uso típico | Migração de credenciais, enriquecimento de perfil pré-token | Notificações, sincronização downstream, analytics |
Mantenha trabalhos assíncronos nos Webhooks. Use uma Action apenas quando o Logto precisar do resultado antes que a autenticação possa continuar.