Validação de Token TOTP com Código Python Personalizado - Fluxo de trabalho n8n

Valide segredos de Palavras-passe Únicas Temporizadas (TOTP) diretamente no seu fluxo de trabalho n8n usando código Python personalizado. Integre lógica 2FA segura com este versátil modelo n8n.

Prévia do Workflow

Pronto para automatizar?

Baixe este modelo de fluxo de trabalho n8n e comece a usá-lo instantaneamente.

Para quem é indicado?


  • Engenheiros de Segurança: Implementação de mecanismos personalizados de autenticação de dois fatores (2FA).

  • Programadores Backend: Integração de passos de autenticação seguros diretamente em chamadas de API de backend usando o n8n.

  • Especialistas em Automação: Utilizadores que necessitam de uma solução autónoma de verificação TOTP, sem depender de credenciais externas do n8n ou serviços dedicados.

  • Qualquer pessoa que procure um exemplo avançado da utilização do nó Code do n8n para operações criptográficas.

Visão Geral

Este modelo especializado do n8n fornece um método altamente flexível para verificar códigos de Palavras-passe Únicas Temporizadas (TOTP). Ao contrário dos métodos padrão que podem exigir a configuração de credenciais específicas do n8n, este fluxo de trabalho n8n utiliza um script Python robusto e autónomo para lidar com todo o processo de verificação—desde a descodificação Base32 até à geração HMAC-SHA
1.

A principal mais-valia deste fluxo de trabalho n8n é a sua independência. Permite-lhe recuperar dinamicamente o segredo TOTP do utilizador (por exemplo, a partir de uma base de dados) e verificar imediatamente o código fornecido pelo utilizador em relação ao intervalo de tempo atual. Isto é essencial para construir fluxos personalizados de início de sessão ou de verificação de ações seguras, oferecendo um controlo de fluxo de lógica central poderoso dentro da sua automação geral do n8n.

Como funciona

Esta automação é iniciada pelo nó Manual Trigger do n8n, usado tipicamente para testes ou quando executado como um subfluxo de trabalho.


  1. Início e Inicialização (Ao clicar em ‘Test workflow’): O fluxo começa, substituindo frequentemente este gatilho inicial do n8n por um webhook de produção ou uma consulta à base de dados.

  2. Definir Entradas de Exemplo (EXAMPLE FIELDS): O nó n8n rotulado como 'EXAMPLE FIELDS' define as duas entradas críticas: o totpsecretexample (a chave secreta Base32 do utilizador) e o codetoverify_example (o código de 6 dígitos fornecido pelo utilizador).

  3. Executar Lógica de Validação (TOTP VALIDATION): O núcleo do fluxo de trabalho n8n reside neste nó Code do n8n. Ele executa um script Python abrangente que importa as bibliotecas criptográficas necessárias (hmac, hashlib). O script descodifica o segredo Base32, calcula o contador de intervalo de tempo atual, gera o código TOTP esperado usando HMAC-SHA1 e compara-o com o código de entrada. Retorna um estado de 1 (válido) ou 0 (inválido).

  4. Encaminhamento Condicional (IF CODE IS VALID): O fluxo utiliza um nó IF do n8n para verificar o estado de saída. Se o estado for 1, o fluxo de trabalho n8n segue pelo ramo 'true' para autenticação bem-sucedida; se for 0, segue pelo ramo 'false', permitindo tratamento personalizado de erros ou rejeição de credenciais.

Guia de Instalação

Para implementar este fluxo de trabalho n8n, siga estes passos:


  1. Importar: Copie os dados JSON fornecidos e cole-os diretamente na sua instância n8n usando o menu 'New' > 'Import from JSON'.

  2. Configuração do Gatilho (Trigger): O gatilho inicial do n8n está definido como 'Manual Trigger'. Para uso em produção, substitua-o pelo gatilho desejado (por exemplo, Webhook, chamada de API ou Consulta à Base de Dados).

  3. Personalizar Entrada de Dados: Localize o nó Code do n8n denominado 'TOTP VALIDATION'.

Reveja as linhas 39 e 40 no código Python.
Atualmente, elas referenciam a saída do nó 'EXAMPLE FIELDS' (input.item.json.totpsecret_example).
* Passo Crucial: Modifique estas linhas para obter o segredo e o código da sua fonte de dados real (por exemplo, se for precedido por um nó Webhook, poderá referenciar $json.body.secret e $json.body.code).

  1. Testar: Use o botão 'Test workflow' após definir os dados de exemplo para garantir que a lógica Python personalizada funciona corretamente no seu ambiente n8n.

Detalhes do Nó

Ao clicar em ‘Test workflow’ (nó Manual Trigger do n8n): Serve como ponto de partida para testar este modelo n8n. Num sistema ativo, este gatilho do n8n seria substituído por um gatilho de produção.
EXAMPLE FIELDS (nó Set do n8n): Um nó utilitário usado apenas para testes. Injeta dados de exemplo (um totpsecretexample e codetoverifyexample) na estrutura do fluxo de trabalho n8n antes da validação.
TOTP VALIDATION (nó Code do n8n): O núcleo funcional. Este nó n8n contém um script Python que implementa o padrão RFC 6238 para TOTP. As configurações chave incluem definir a linguagem como Python e definir a função verifytotp para comparar o token calculado com o código de entrada.
IF CODE IS VALID (nó IF do n8n): Um nó central de controlo de fluxo de lógica do n8n. Verifica a saída de estado ($json.status) do nó Code do n8n anterior. Se o estado for igual a 1, a validação é bem-sucedida, direcionando o fluxo de trabalho n8n em conformidade.

Fluxos de trabalho n8n relacionados

Grátis

Nós: 5 Nós
Atualizado: Dezembro 26 2025
Ver tudo
Criado por
Bazhard
Bazhard

Apresentou*