Passer au contenu principal

Utilisez l’IA pour intégrer Auth0

Si vous utilisez un assistant IA de programmation comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter automatiquement l’authentification Auth0 en quelques minutes à l’aide des agent skills.Installation :
Demandez ensuite à votre assistant IA :
Votre assistant IA créera automatiquement votre application Auth0, récupérera les identifiants, installera express-openid-connect, configurera le middleware et mettra en place vos routes. Documentation complète des agent skills →
Prérequis : Avant de commencer, assurez-vous d’avoir installé les éléments suivants :
  • Node.js 18 LTS ou version ultérieure
  • npm 10+ ou yarn 1.22+
  • jq - Nécessaire pour configurer Auth0 CLI (facultatif)
Compatibilité des versions d’Express : Ce guide de démarrage rapide est compatible avec Express 4.17.0 et les versions ultérieures.

Premiers pas

Ce guide explique comment intégrer Auth0, ajouter l’authentification et afficher les informations du profil utilisateur dans une application Web Express.js à l’aide du SDK express-openid-connect.

1. Créez un nouveau projet

Créez un nouveau répertoire pour votre application Express, puis initialisez un projet Node.js.
Créez la structure du projet :

2. Installer le SDK Auth0 pour Express

Installez express-openid-connect ainsi qu’Express et dotenv pour gérer les variables d’environnement.
Pour le développement, installez nodemon pour redémarrer automatiquement votre serveur en cas de modification de fichiers :
Mettez à jour votre package.json pour y ajouter des scripts de lancement : 📁 package.json

3. Configurez votre application Auth0

Ensuite, vous devez créer une nouvelle application dans votre locataire Auth0 et ajouter les variables d’environnement à votre projet. Vous pouvez le faire automatiquement en exécutant une commande CLI ou manuellement dans l’Auth0 Dashboard :
Exécutez la commande shell suivante à la racine de votre projet pour créer une application Auth0 et générer votre fichier .env :macOS / Linux :
Windows (PowerShell) :
Si vous n’avez pas encore installé Auth0 CLI, exécutez :
Authentifiez-vous ensuite avec auth0 login.

4. Configurez le middleware

Ajoutez le middleware Auth0 à votre application Express. Le middleware auth() assure la gestion des sessions et crée automatiquement les routes /login, /logout et /callback. 📁 index.js
Ce que cela fait :
  • authRequired: false permet, par défaut, aux utilisateurs authentifiés et non authentifiés d’accéder aux routes
  • auth0Logout: true garantit que les utilisateurs sont déconnectés d’Auth0 ainsi que de votre application
  • Le middleware fournit automatiquement les routes /login, /logout et /callback
  • La session de l’utilisateur est stockée dans un témoin chiffré

5. Créez les routes de connexion, de déconnexion et de profil

Ajoutez maintenant des routes pour afficher les liens de connexion et de déconnexion, ainsi qu’une page de profil protégée. 📁 index.js
Points clés :
  • Le middleware requiresAuth() protège la route /profile : les utilisateurs non authentifiés sont redirigés vers la page de connexion
  • req.oidc.user contient les informations de profil de l’utilisateur authentifié
  • req.oidc.isAuthenticated() retourne un booléen indiquant l’état de la connexion
  • Les routes de connexion et de déconnexion (/login, /logout) sont créées automatiquement par le middleware auth()

6. Exécutez votre application

Démarrez le serveur de développement :
Ouvrez http://localhost:3000 dans votre navigateur.
Point de vérificationVous devriez maintenant disposer d’une page de connexion Auth0 entièrement fonctionnelle. Lorsque vous :
  1. Cliquez sur “Login” - vous êtes redirigé vers la page Universal Login d’Auth0
  2. Terminez l’authentification - vous êtes redirigé vers votre application
  3. Accédez à “/profile” - vous voyez vos informations d’utilisateur
  4. Cliquez sur “Logout” - vous êtes déconnecté à la fois de votre application et d’Auth0

Utilisation avancée

Utilisez le middleware requiresAuth() pour protéger chaque route qui nécessite une authentification :
Vous pouvez également protéger toutes les routes d’un chemin donné à l’aide d’Express Router :
Pour appeler des API externes qui nécessitent un jeton d’accès, configurez le SDK pour en demander un :📁 index.js (configuration mise à jour)
Ajoutez les éléments suivants à votre fichier .env :
Utilisez ensuite le jeton d’accès pour appeler votre API :
Pour obtenir des jetons d’actualisation, ajoutez offline_access à votre scope :
Protégez les routes selon les claim de l’utilisateur (rôles, autorisations, etc.):
Les revendications comme role doivent être ajoutées à vos jetons au moyen des Rules ou des Actions d’Auth0. En savoir plus sur l’ajout de revendications personnalisées.
Pour les environnements de production, ou lorsque vous exécutez plusieurs instances de serveur, utilisez un stockage de session personnalisé :
Quand utiliser un stockage de sessions personnalisé :
  • Exécution de plusieurs instances de serveur (répartition de charge)
  • Les données de session dépassent la taille limite d’un témoin (~4 KB)
  • Besoin de conserver les sessions entre les redémarrages du serveur
  • Utilisation de la déconnexion par canal arrière
Ajoutez une gestion appropriée des erreurs d’authentification :

Dépannage

Erreur « Invalid state » après la connexion

Problème : Le paramètre state ne correspond pas entre la requête d’authentification et le callback.Solutions :
  1. Assurez-vous d’utiliser HTTPS en production
  2. Vérifiez que les témoins sont correctement définis (et non bloqués par le navigateur)
  3. Vérifiez que l’URL de retour correspond exactement dans Auth0 Dashboard

req.oidc est undefined

Problème : Le middleware auth() n’est pas appliqué avant l’accès à req.oidc.Solution : Assurez-vous que app.use(auth(config)) est appelé avant toute route qui accède à req.oidc :

Session trop volumineuse / erreurs liées aux témoins

Problème : Les données de session de l’utilisateur dépassent la taille limite des témoins.Solution : Utilisez un stockage de session personnalisé, comme Redis :

URL de retour non correspondante

Problème : Erreur « Callback URL mismatch » renvoyée par Auth0.Solution :
  1. Accédez à Auth0 Dashboard → Applications → Votre application → Settings
  2. Ajoutez http://localhost:3000 (ou votre URL de production) à Allowed Callback URLs
  3. L’URL doit correspondre exactement (y compris les barres obliques finales)

Les variables d’environnement ne se chargent pas

Problème : Les valeurs de configuration sont undefined.Solution :
  1. Assurez-vous que require('dotenv').config() se trouve en haut de votre fichier d’entrée
  2. Vérifiez que le fichier .env se trouve dans le répertoire racine
  3. Vérifiez qu’il n’y a pas de fautes de frappe dans les noms de variables

Étapes suivantes

Maintenant que l’authentification fonctionne, vous pouvez aussi explorer :

Ressources