Système d'authentification JWT Robuste utilisant les Tables de Données et les Nœuds Crypto - Workflow n8n

Implémentez un système d'authentification JWT complet et sécurisé (Inscription, Connexion, Rafraîchissement, Vérification) utilisant les nœuds Data Tables et Crypto de n8n. Un workflow n8n puissant pour les développeurs.

Aperçu du workflow

Prêt à automatiser ?

Téléchargez ce modèle de workflow n8n et commencez à l'utiliser instantanément.

À qui s'adresse cette solution ?


  • Développeurs backend ayant besoin d'une solution d'authentification stateless (sans état) auto-hébergée.

  • Organisations développant des microservices et des API sécurisés au sein de n8n.

  • Utilisateurs recherchant des exemples avancés de cryptographie et de contrôle de flux dans un workflow n8n.

Vue d'ensemble

Ce modèle de workflow n8n complet fournit un système d'authentification JWT hautement sécurisé et prêt pour la production. Il couvre le cycle de vie complet : inscription utilisateur, connexion sécurisée utilisant le salage de mot de passe et le hachage SHA-512, émission de jetons d'accès à courte durée de vie et de jetons de rafraîchissement à longue durée de vie, ainsi que des mécanismes robustes de vérification et de rafraîchissement des jetons. En tirant parti des fonctionnalités Crypto et Data Table de n8n, ce modèle n8n garantit que les données sensibles comme les mots de passe ne sont jamais stockées en clair et que les jetons de rafraîchissement peuvent être facilement révoqués, ce qui est essentiel pour tout modèle de sécurité d'application moderne. Ce workflow n8n hautement structuré démontre une logique complexe et des pratiques sécurisées.

Fonctionnement

Ce puissant workflow n8n opère à travers quatre flux distincts, tous initiés par des déclencheurs webhook n8n séparés :


  1. Inscription : Le déclencheur n8n reçoit les détails de l'utilisateur. Il valide d'abord l'unicité de l'email et du nom d'utilisateur en utilisant les Tables de Données n8n. Un sel (salt) unique est généré, combiné avec le mot de passe, puis haché en utilisant SHA-512. Le résultat 'sel:hash' est stocké de manière sécurisée dans la Table de Données users.

  2. Connexion : Le déclencheur n8n accepte les identifiants. Il récupère le sel et le hash stockés pour l'utilisateur. Le mot de passe saisi est ensuite haché avec le sel récupéré. Le nœud n8n Verify Password compare les deux hashes. S'ils correspondent, le workflow génère et signe un jeton d'accès (Access Token) de courte durée (15 minutes) et un jeton de rafraîchissement (Refresh Token) de longue durée (7 jours) en utilisant HMAC-SHA256. Le jeton de rafraîchissement est haché et stocké dans la Table de Données dédiée refreshtokens avant que les deux jetons ne soient renvoyés.

  3. Vérification du Jeton : Une application externe envoie le jeton d'accès au déclencheur de vérification n8n. Le workflow n8n analyse le JWT, vérifie son expiration, et utilise la clé secrète définie pour ressigner l'en-tête et la charge utile (payload) du jeton. Le nœud n8n Code Compare Signatures garantit que la signature fournie correspond à la signature attendue, assurant ainsi l'authenticité et l'intégrité du jeton.

  4. Rafraîchissement du Jeton : Si le jeton d'accès expire, le client envoie le jeton de rafraîchissement. Ce déclencheur n8n de rafraîchissement vérifie la signature et l'expiration du jeton de rafraîchissement, puis utilise un hash du jeton pour effectuer une recherche rapide dans la Table de Données refreshtokens. Si la session est active, le nœud n8n crée et signe un tout nouveau jeton d'accès, prolongeant la session active de l'utilisateur sans nécessiter une nouvelle connexion.

Guide d'installation

Pour déployer ce modèle de workflow n8n sécurisé, suivez ces étapes :


  1. Importation : Copiez les données JSON fournies et importez-les dans votre instance n8n.

  2. Configuration des Tables de Données : Vous devez créer manuellement deux Tables de Données n8n :

users : Les colonnes requises sont email (string), username (string) et passwordhash (string).
refresh
tokens : Les colonnes requises sont tokenhash (string), userid (number) et expiresat (dateTime).

  1. Définir les Secrets : Localisez le nœud n8n SET ACCESS AND REFRESH SECRET (et ses doublons dans les flux Vérification et Rafraîchissement : SET ACCESS AND REFRESH SECRET1 et SET ACCESS AND REFRESH SECRET2). Saisissez des chaînes longues, complexes et distinctes pour ACCESSSECRET et REFRESH_SECRET. Crucialement, ces secrets doivent correspondre sur les trois nœuds Set (ou idéalement, utilisez les Variables n8n pour une cohérence globale).

  2. Activer les Webhooks : Enregistrez et activez le workflow n8n pour rendre opérationnels les déclencheurs webhook n8n /register-user, /login, /verify-token et /refresh.

Détails du nœud

Webhook (Inscription, Connexion, Vérif, Rafraîchissement) : Agit comme le déclencheur n8n pour l'ensemble du système, exposant les points de terminaison API (endpoints) pour les applications clientes.
Table de Données (Obtenir Utilisateur, Créer Utilisateur, Upsert/Mettre à jour Jeton) : Utilisée pour le stockage persistant des données utilisateur, effectuant des vérifications d'unicité (inscription) et gérant l'état et la révocation des Jetons de Rafraîchissement.
Crypto (Générer Sel, Hacher Mot de Passe, Signer Jeton) : Le composant de sécurité central. Utilisé pour générer un sel unique, hacher sécuritairement les mots de passe via SHA-512 et créer la signature numérique des JWT via HMAC-SHA256.
Code (Extraire Sel & Hash, Vérifier Mot de Passe, Analyser JWT, Créer Charge Utile JWT) : Les nœuds n8n Code JavaScript personnalisés gèrent la manipulation complexe de chaînes de caractères, la comparaison des hashes de mots de passe, le décodage JWT, les vérifications d'expiration et l'encodage/décodage base64URL nécessaires pour construire les chaînes JWT finales. C'est ici que réside la logique des jetons dans le workflow n8n.


  • If/Répondre au Webhook : Gère le flux et renvoie les codes de statut HTTP appropriés (200, 400, 401, 403) en fonction de la validation de la logique (par exemple, si la vérification du mot de passe échoue, si le jeton est expiré, ou si la vérification d'unicité de l'inscription échoue).

Workflows n8n associés

Gratuit

Nœuds: 10 Nœuds
Mis à jour: Décembre 26 2025
Voir tout
Créé par
Luka Zivkovic
Luka Zivkovic

En vedette*