Pular para o conteúdo principal

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.
nota:

As actions estão disponíveis no Logto OSS e nos planos Enterprise do Logto Cloud.

atenção:

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 actionQuando é executadaO que pode fazer
Pós-verificação do primeiro fatorDurante 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-loginApó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 via process.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:

ActionsWebhooks
ExecuçãoSíncrona e em linha com a autenticaçãoAssíncrona e fora da solicitação de autenticação
Pode afetar o fluxo de autenticação atualSimNão
Pode modificar um usuário a partir do resultadoSim, usando o patch de usuário suportadoNão diretamente; o receptor pode chamar a Management API separadamente
Cobertura de eventosPontos de autenticação selecionadosUm amplo conjunto de eventos de interação e alteração de dados
Uso típicoMigração de credenciais, enriquecimento de perfil pré-tokenNotificaçõ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.

Próximos passos