Skip to main content
Une nouvelle version bêta de ce Quickstart est disponible et utilise le SDK @auth0/auth0-express, qui remplacera bientôt ce guide. Essayer le Quickstart bêta →

Utiliser l’IA pour intégrer Auth0

Si vous utilisez un assistant IA de programmation comme Claude Code, Cursor ou GitHub Copilot, vous pouvez ajouter l’authentification Auth0 automatiquement en quelques minutes à l’aide d’Agent Skills.Installer :
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 sur Agent Skills →
Prérequis : Avant de commencer, assurez-vous d’avoir installé ce qui suit :
  • Node.js 18 LTS ou une version ultérieure
  • npm 10+ ou yarn 1.22+
  • jq - Requis pour la configuration d’Auth0 CLI (facultatif)
Compatibilité des versions d’Express : Ce Quickstart fonctionne 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 renseignements 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 Express

Installez express-openid-connect ainsi qu’Express et dotenv pour gérer les variables d’environnement.
En développement, installez nodemon pour redémarrer automatiquement votre serveur lorsque des fichiers sont modifiés :
Mettez à jour votre package.json pour y ajouter des scripts de démarrage : 📁 package.json

3. Configurez votre Auth0 App

Ensuite, vous devez créer une nouvelle application dans votre tenant Auth0 et ajouter les variables d’environnement à votre projet. Vous pouvez choisir de configurer automatiquement votre application Auth0 en exécutant une commande CLI ou de le faire manuellement dans le Dashboard :
Exécutez la commande shell suivante dans le répertoire racine de votre projet pour créer une application Auth0 et générer votre fichier .env :
Cette commande va :
  1. Vérifier si vous êtes authentifié (et vous inviter à vous connecter au besoin)
  2. Créer une Auth0 Regular Web Application configurée pour http://localhost:3000
  3. Générer un fichier .env avec ISSUER_BASE_URL, CLIENT_ID, SECRET et BASE_URL

4. Configurer le middleware

Ajoutez le middleware Auth0 à votre application Express. Le middleware auth() gère la session 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 ou non d’accéder aux routes
  • auth0Logout: true garantit que les utilisateurs sont déconnectés à la fois d’Auth0 et de votre application
  • Le middleware met automatiquement à disposition des routes à /login, /logout et /callback
  • La session utilisateur est stockée dans un cookie chiffré

5. Créez des routes de login, de logout et de profil

Ajoutez maintenant des routes pour afficher des liens de login et de logout, 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 renseignements du profil de l’utilisateur authentifié
  • req.oidc.isAuthenticated() renvoie un booléen indiquant l’état de la connexion
  • Les routes de connexion et de logout (/login, /logout) sont créées automatiquement par le middleware auth()

6. Lancez votre application

Démarrez le serveur de développement :
Ouvrez http://localhost:3000 dans votre navigateur.
CheckpointVous devriez maintenant avoir une page de connexion d’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 renseignements 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 les routes qui nécessitent une authentification :
Vous pouvez aussi protéger toutes les routes associées à un chemin précis à 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 ce qui suit à votre fichier .env :
Ensuite, utilisez votre access token pour appeler votre API :
Pour obtenir des jetons d’actualisation, ajoutez offline_access à votre scope :
Protégez les routes selon les claims de l’utilisateur (rôles, permissions, etc.) :
Des claims comme role doivent être ajoutées à vos jetons au moyen d’Auth0 Rules ou d’Actions. En savoir plus sur l’ajout de claims personnalisés.
Pour les environnements de production ou si vous exécutez plusieurs instances de serveur, utilisez un magasin de sessions personnalisé :
Quand utiliser un magasin de sessions personnalisé :
  • Exécuter plusieurs instances de serveur (répartition de la charge)
  • Les données de session dépassent les limites de taille des témoins (~4KB)
  • Avoir besoin d’enregistrer la session lors des redémarrages du serveur
  • Utiliser Back-Channel Logout
Ajoutez une gestion adéquate des erreurs d’authentification :

Dépannage

Erreur « invalid state » après la connexion

Problème : La valeur de state ne correspond pas entre la requête d’authentification et le rappel.Solutions :
  1. Assurez-vous d’utiliser HTTPS en production
  2. Vérifiez que les cookies sont correctement enregistrés (et non bloqués par le navigateur)
  3. Vérifiez que l’URL de rappel correspond exactement à celle configurée dans l’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 cookies

Problème : Les données de session de l’utilisateur dépassent la taille maximale des cookies.Solution : Utilisez un magasin de sessions personnalisé comme Redis :

Incompatibilité de l’URL de rappel

Problème : Erreur « Callback URL mismatch » provenant d’Auth0.Solution :
  1. Allez dans votre Auth0 Dashboard → Applications → Your App → 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 au début 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

Prochaines étapes

Maintenant que l’authentification fonctionne, pensez à explorer :

Ressources