Sistema de autenticación de usuarios seguro mediante Webhooks y PostgreSQL - Flujo de trabajo de n8n

Crea un backend de autenticación de usuarios seguro con este potente flujo de trabajo de n8n. Incluye registro (signup), inicio de sesión (signin) y recuperación de contraseña usando pgcrypto de PostgreSQL para el hashing bcrypt.

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?


  • Desarrolladores que necesitan un backend seguro para prototipos o MVPs.

  • Arquitectos de sistemas que integran la gestión de identidades en aplicaciones personalizadas.

  • Usuarios que buscan ejemplos avanzados de PostgreSQL y lógica personalizada dentro de un flujo de trabajo de n8n.

  • Cualquiera que busque plantillas robustas de n8n para gestionar datos sensibles de usuarios.

Descripción general

Implementar un sistema de autenticación seguro requiere tradicionalmente una codificación compleja en el lado del servidor. Este flujo de trabajo de n8n simplifica el proceso aprovechando el poder de las funciones criptográficas integradas de PostgreSQL (pgcrypto) y las capacidades de enrutamiento flexibles del ecosistema de nodos de n8n.

Este robusto flujo de trabajo de n8n centraliza la gestión de usuarios en un único endpoint. Cuando una aplicación externa (como una interfaz de usuario frontal o una aplicación móvil) llama al webhook, el sistema gestiona de forma segura la creación de usuarios (registro con hashing bcrypt), la verificación de credenciales (inicio de sesión) y la generación automática de contraseñas (olvido de contraseña). Sirve como un excelente ejemplo del uso de un trigger de n8n para la interacción con APIs externas manteniendo altos estándares de seguridad. Este flujo de trabajo específico de n8n reduce drásticamente el tiempo de desarrollo de servicios de autenticación backend.

Cómo funciona

La automatización comienza con un trigger dedicado de n8n:


  1. Webhook Trigger (Disparador de Webhook): El proceso comienza cuando un cliente envía una solicitud POST al endpoint /auth. El cuerpo de la solicitud debe contener path (especificando 'signup', 'signin' o 'forgot'), email y, opcionalmente, password o name.

  2. Router Node (Nodo Router): Un nodo crucial de n8n, el Router, analiza el valor de path de la solicitud entrante. Dirige el flujo de ejecución a la rama de lógica de PostgreSQL apropiada.

  3. Ruta de Registro (Signup Path): Si path es 'signup', el flujo alcanza el nodo de n8n de PostgreSQL Signup. Este nodo ejecuta una consulta SQL usando crypt() y gen_salt('bf') para hashear de forma segura la contraseña del usuario mediante bcrypt antes de la inserción.

  4. Ruta de Inicio de Sesión (Login Path): Si path es 'signin', el nodo de PostgreSQL Login de n8n consulta al usuario por email (sin distinguir mayúsculas/minúsculas) y utiliza la función crypt() de PostgreSQL para comparar la contraseña proporcionada con el hash almacenado. El resultado, que incluye un booleano isPasswordMatch, pasa al nodo Check Login de n8n.

  5. Validación: El nodo IF Check Login de n8n verifica si se encontró un ID de usuario Y si la contraseña coincidió. Dirige el resultado a una respuesta de éxito o de error.

  6. Ruta de Olvido de Contraseña (Forgot Password Path): Si path es 'forgot', el nodo Reset Password de n8n genera una nueva contraseña aleatoria de 8 caracteres, actualiza el registro del usuario y devuelve la nueva contraseña en texto plano para visualización inmediata al usuario o para ser enviada por correo electrónico.

  7. Respuesta: Todas las acciones exitosas, fallos de validación o errores de base de datos concluyen enviando una respuesta JSON estandarizada (status, message, data) de vuelta a través del nodo Respond de n8n.

Guía de instalación

Para desplegar este potente flujo de trabajo de n8n, sigue estos pasos:


  1. Importar: Copia el JSON del flujo de trabajo de n8n proporcionado e impórtalo en tu instancia de n8n.

  2. Configuración de la Base de Datos: Este flujo de trabajo de n8n requiere una base de datos PostgreSQL o Supabase con una tabla users. Asegúrate de que las extensiones uuid-ossp y pgcrypto estén habilitadas en tu base de datos.

* Crea la estructura de tabla requerida:
CREATE TABLE users (
id uuid PRIMARY KEY DEFAULT uuidgeneratev4(),
fullname text NOT NULL,
email text UNIQUE NOT NULL,
password
hash text NOT NULL,
created_at timestamptz DEFAULT now()
);

  1. Credenciales: Configura las credenciales de PostgreSQL dentro de n8n. En las configuraciones de los nodos Signup, Login y Reset Password de n8n, asigna tu conjunto de credenciales de PostgreSQL (p. ej., 'Project: Edubot').

  2. Activación: Activa el flujo de trabajo de n8n. El endpoint del trigger Webhook de n8n estará ahora activo y listo para recibir solicitudes de autenticación.

Detalles del nodo

Webhook (n8n trigger):
Función: Sirve como el único endpoint de la API (/auth) para todas las acciones de autenticación.
Configuración Clave: Método establecido en POST; Modo de Respuesta establecido en 'Response Node'.
Router (Nodo Switch de n8n):
Función: Dirige la ejecución basándose en la variable path ($json["path"]), enviando el tráfico a 'signup', 'signin' o 'forgot'.
Configuración Clave: Utiliza tres salidas que corresponden a las tres rutas necesarias.
Signup (Nodo PostgreSQL de n8n):
Función: Inserta un nuevo registro de usuario. Utiliza crypt('{{$json["password"]}}', gen_salt('bf')) para el hashing seguro de la contraseña.
Login (Nodo PostgreSQL de n8n):
Función: Recupera los datos del usuario y compara la contraseña entrante con el hash almacenado mediante una consulta SQL segura que devuelve isPasswordMatch.
Check Login (Nodo IF de n8n):
Función: Lógica central de control de flujo. Valida los resultados de la consulta Login (comprueba si el usuario existe y si la contraseña coincide).
Configuración Clave: La condición comprueba la existencia de id Y que isPasswordMatch sea igual a true.
Reset Password (Nodo PostgreSQL de n8n):
Función: Genera una cadena aleatoria de 8 caracteres y actualiza el hash de la contraseña del usuario en la base de datos.
Respond (Nodo n8n):
* Función: Finaliza la solicitud enviando el estado, el mensaje y los datos de vuelta al cliente que inició el trigger de n8n.

Flujos de trabajo de n8n relacionados

Gratis

Nodos: 6 Nodos
Actualizado: Diciembre 26 2025
Ver todo
Creado por

Presentado*