Validación de Token TOTP usando Código Python Personalizado - Flujo de trabajo de n8n

Valide secretos de Contraseñas de un Solo Uso Basadas en Tiempo (TOTP) directamente en su flujo de trabajo de n8n usando código Python personalizado. Integre lógica segura de 2FA con esta plantilla versátil de n8n.

Vista previa del flujo

¿Listo para automatizar?

Descarga esta plantilla de flujo de trabajo de n8n y comienza a usarla al instante.

¿Para quién es ideal?


  • Ingenieros de Seguridad: Para implementar mecanismos personalizados de autenticación de dos factores (2FA).

  • Desarrolladores Backend: Para integrar pasos de autenticación seguros directamente en llamadas a API backend usando n8n.

  • Especialistas en Automatización: Usuarios que necesitan una solución de verificación TOTP autónoma sin depender de credenciales externas de n8n o servicios dedicados.

  • Cualquiera que busque un ejemplo avanzado del uso del nodo Code de n8n para operaciones criptográficas.

Descripción general

Esta plantilla especializada de n8n proporciona un método muy flexible para verificar códigos de Contraseñas de un Solo Uso Basadas en Tiempo (TOTP). A diferencia de los métodos estándar que podrían requerir configurar credenciales específicas de n8n, este flujo de trabajo de n8n utiliza un script robusto y autónomo de Python para manejar todo el proceso de verificación: desde la decodificación Base32 hasta la generación HMAC-SHA
1.

El valor principal de este flujo de trabajo de n8n es su independencia. Permite recuperar dinámicamente el secreto TOTP del usuario (por ejemplo, desde una base de datos) y comprobar inmediatamente el código proporcionado por el usuario con el intervalo de tiempo actual. Esto es esencial para crear flujos de inicio de sesión personalizados o de verificación de acciones seguras, ofreciendo un potente control del flujo de lógica central dentro de su automatización general de n8n.

Cómo funciona

Esta automatización se inicia mediante el nodo n8n Manual Trigger (Disparador Manual), utilizado habitualmente para pruebas o cuando se ejecuta como un subflujo.


  1. Inicio e Inicialización (Al hacer clic en ‘Test workflow’): Comienza el flujo, y a menudo este disparador inicial de n8n se reemplaza por un webhook de producción o una consulta a base de datos.

  2. Definir Entradas de Ejemplo (EXAMPLE FIELDS): El nodo de n8n etiquetado como 'EXAMPLE FIELDS' establece las dos entradas críticas: el totpsecretexample (la clave secreta Base32 del usuario) y el codetoverify_example (el código de 6 dígitos proporcionado por el usuario).

  3. Ejecutar Lógica de Validación (TOTP VALIDATION): El núcleo del flujo de trabajo de n8n reside en este nodo Code de n8n. Ejecuta un script integral de Python que importa las librerías criptográficas necesarias (hmac, hashlib). El script decodifica el secreto Base32, calcula el contador de intervalo de tiempo actual, genera el código TOTP esperado usando HMAC-SHA1 y lo compara con el código de entrada. Devuelve un estado de 1 (válido) o 0 (inválido).

  4. Enrutamiento Condicional (IF CODE IS VALID): El flujo utiliza un nodo IF de n8n para comprobar el estado de salida. Si el estado es 1, el flujo de trabajo de n8n continúa por la rama 'true' para una autenticación exitosa; si es 0, continúa por la rama 'false', permitiendo un manejo personalizado de errores o el rechazo de credenciales.

Guía de instalación

Para desplegar este flujo de trabajo de n8n, siga estos pasos:


  1. Importar: Copie los datos JSON proporcionados y péguelos directamente en su instancia de n8n usando el menú 'New' > 'Import from JSON' (Nuevo > Importar desde JSON).

  2. Configuración del Disparador: El disparador inicial de n8n está configurado como 'Manual Trigger'. Para uso en producción, reemplácelo con el disparador que desee (p. ej., Webhook, llamada API o Consulta de Base de Datos).

  3. Personalizar Entrada de Datos: Localice el nodo Code de n8n 'TOTP VALIDATION'.

Revise las líneas 39 y 40 del código Python.
Actualmente, hacen referencia a la salida del nodo 'EXAMPLE FIELDS' (input.item.json.totpsecret_example).
* Paso fundamental: Modifique estas líneas para recuperar el secreto y el código de su fuente de datos real (p. ej., si le precede un nodo Webhook, podría hacer referencia a $json.body.secret y $json.body.code).

  1. Probar: Use el botón 'Test workflow' (Probar flujo de trabajo) después de configurar los datos de ejemplo para asegurarse de que la lógica personalizada de Python funcione correctamente dentro de su entorno n8n.

Detalles del nodo

Al hacer clic en ‘Test workflow’ (Nodo Manual Trigger de n8n): Sirve como punto de partida para probar esta plantilla de n8n. En un sistema en vivo, este disparador de n8n sería reemplazado por un disparador de producción.
EXAMPLE FIELDS (Nodo Set de n8n): Un nodo de utilidad utilizado únicamente para realizar pruebas. Inyecta datos de muestra (un totpsecretexample y un codetoverifyexample) en la estructura del flujo de trabajo de n8n antes de la validación.
TOTP VALIDATION (Nodo Code de n8n): El núcleo funcional. Este nodo de n8n contiene un script de Python que implementa el estándar RFC 6238 para TOTP. Las configuraciones clave incluyen establecer el lenguaje a Python y definir la función verifytotp para comparar el token calculado con el código introducido.
IF CODE IS VALID (Nodo IF de n8n): Un nodo de control de flujo de lógica principal de n8n. Comprueba la salida de estado ($json.status) del nodo Code de n8n anterior. Si el estado es igual a 1, la validación es exitosa, dirigiendo el flujo de trabajo de n8n en consecuencia.

Flujos de trabajo de n8n relacionados

Gratis

Nodos: 5 Nodos
Actualizado: Diciembre 26 2025
Ver todo
Creado por
Bazhard
Bazhard

Presentado*