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 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 excluí-los.

Em implantações self-hosted, os scripts de action são executados dentro do processo do servidor Logto com seus privilégios. Conceder acesso para editar ou testar scripts é equivalente a conceder execução de código no host do Logto, portanto, o Admin Console não deve ser compartilhado com usuários não confiáveis. Trate os scripts como código confiável do lado do servidor; o tempo de execução limita o tempo e a memória de um script, mas não é 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 por 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, então 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 por 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 estas APIs Web padrão tanto no Logto Cloud quanto no Logto self-hosted:

  • fetch, Request, Response e Headers
  • Web Crypto via crypto e crypto.subtle
  • TextEncoder e TextDecoder
  • URL e URLSearchParams

Os scripts não podem importar pacotes. Evite globais e módulos específicos do Node.js porque não são portáveis entre Logto self-hosted e Logto Cloud e não fazem parte do contrato suportado de script.

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 inline 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