Skip to main content

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 l’authentification Auth0 automatiquement en quelques minutes à l’aide d’Agent Skills.Installation :
Ensuite, demandez à votre assistant IA :
Votre assistant IA créera automatiquement votre application Auth0, récupérera les identifiants, installera @auth0/nextjs-auth0, créera des routes d’API et configurera les variables d’environnement. Documentation complète sur Agent Skills →
Prérequis : Avant de commencer, assurez-vous d’avoir installé les éléments suivants :Vérifiez l’installation : node --version && npm --version

Pour commencer

Ce guide de démarrage rapide montre comment ajouter l’authentification Auth0 à une application Next.js 16. Vous créerez une application web full stack avec rendu côté serveur, une fonctionnalité de connexion sécurisée et des routes protégées à l’aide du SDK Auth0 Next.js.
1

Créer un nouveau projet

Créez un nouveau projet Next.js pour ce Quickstart
Ouvrir le projet
2

Installer le SDK Auth0 Next.js

shellscript npm install @auth0/nextjs-auth0
3

Créer les fichiers du projet

Créez tous les répertoires et fichiers nécessaires à l’intégration d’Auth0 :
4

Configurez votre Auth0 App

Ensuite, vous devez créer une nouvelle application sur votre tenant Auth0 et ajouter les variables d’environnement à votre projet.Vous avez trois options pour configurer votre application Auth0 : utiliser l’outil Quick Setup (recommandé), exécuter une commande CLI, ou configurer manuellement via le Dashboard :
Créez une Auth0 App et copiez le fichier .env prérempli avec les bonnes valeurs de configuration.
5

Créer la configuration d’Auth0

Ajoutez le code du client Auth0 dans src/lib/auth0.ts :
src/lib/auth0.ts
6

Ajouter un proxy

Ajoutez le code du proxy dans src/proxy.ts :
src/proxy.ts
Comme nous utilisons un répertoire src/, le fichier proxy.ts est créé dans src/. Si vous n’utilisez pas de répertoire src/, créez-le plutôt à la racine du projet.
Ce proxy configure automatiquement les routes d’authentification suivantes :
  • /auth/login - Route de connexion
  • /auth/logout - Route de déconnexion
  • /auth/callback - Route de rappel
  • /auth/profile - Route du profil utilisateur
  • /auth/access-token - Route du jeton d’accès
  • /auth/backchannel-logout - Route de déconnexion par canal arrière
7

Créer des composants de connexion, de déconnexion et de profil

Ajoutez le code des composants aux fichiers créés à l’étape 3 :
8

Mettez à jour votre page d’accueil

Remplacez src/app/page.tsx par :
src/app/page.tsx
9

Mettre à jour le layout avec Auth0Provider

Mettez à jour src/app/layout.tsx pour charger la police Inter et entourer votre application de Auth0Provider :
src/app/layout.tsx
Dans la version 4, le Auth0Provider est facultatif. Vous en avez besoin uniquement si vous voulez transmettre un utilisateur initial lors du rendu côté serveur afin qu’il soit accessible dans le hook useUser().
10

Configurer Tailwind CSS

Remplacez le contenu de src/app/globals.css par :
src/app/globals.css
11

Lancez votre application

Votre application sera accessible à l’adresse http://localhost:3000. L’Auth0 SDK v4 configure automatiquement les routes d’authentification sous /auth/* (et non /api/auth/* comme dans la v3).Si le port 3000 est déjà utilisé, exécutez : npm run dev -- --port 3001 et mettez à jour les URL de rappel de votre application Auth0 vers http://localhost:3001
VérificationVous devriez maintenant disposer d’une page de connexion Auth0 entièrement fonctionnelle sur votre localhost

Dépannage

Si vous voyez l’erreur JWEDecryptionFailed: decryption operation failed, c’est qu’il y a soit un AUTH0_SECRET invalide, soit un ancien cookie de session chiffré avec un secret différent.Solution :
  1. Générez un nouveau secret avec :
  1. Mettez à jour votre fichier .env.local :
  1. Effacez les cookies de votre navigateur pour localhost:3000 :
    • Chrome/Edge : Appuyez sur F12 → onglet Application → Cookies → Supprimez tous les cookies pour localhost
    • Firefox : Appuyez sur F12 → onglet Storage → Cookies → Supprimez tous les cookies pour localhost
    • Safari : menu Develop → Show Web Inspector → onglet Storage → Cookies → Delete all
  2. Redémarrez votre serveur de développement :
Le secret doit contenir exactement 32 octets (64 caractères hexadécimaux). L’erreur se produit lorsque l’application essaie de déchiffrer un cookie de session existant qui a été chiffré avec un secret différent.
Si le fait de cliquer sur login vous mène à une page 404, vérifiez ces problèmes courants :
  1. Emplacement du proxy : Assurez-vous que src/proxy.ts se trouve au bon endroit
  2. Code du proxy : Vérifiez que le proxy correspond au code de l’étape 6
  3. Redémarrer le serveur : Après avoir créé le fichier proxy, redémarrez le serveur de développement
  4. Vérifier les importations : Assurez-vous que le chemin import { auth0 } from "./lib/auth0" est correct
Si vous voyez l’erreur “Cannot find module ’@/components/LoginButton’” ou une erreur semblable :
  1. Vérifiez que les fichiers existent : Assurez-vous que tous les fichiers de l’étape 3 ont bien été créés
  2. Vérifiez les chemins : Assurez-vous que les composants se trouvent dans le répertoire src/components/
  3. Redémarrer TypeScript : Appuyez sur Cmd+Shift+P (Mac) ou Ctrl+Shift+P (Windows), puis exécutez “TypeScript: Restart TS Server”
  4. Vérifier les importations : Assurez-vous d’utiliser @/components/* (et non ~/components/*)

Utilisation avancée

Ce guide de démarrage rapide utilise Auth0 Next.js SDK v4, qui apporte des changements importants par rapport à la v3 :
  • Aucun handler de route dynamique n’est requis - Les routes d’authentification sont montées automatiquement par le proxy
  • Configuration simplifiée du client - new Auth0Client() lit automatiquement les variables d’environnement
  • Nouveaux chemins de routes - Les routes sont sous /auth/* plutôt que /api/auth/*
  • Proxy requis - Toutes les fonctionnalités d’authentification passent par proxy.ts
  • Utilisez des balises <a> - La navigation doit se faire avec <a href="/auth/login"> plutôt qu’avec des boutons utilisant onClick

Routes d’authentification

Le SDK monte automatiquement ces routes par l’intermédiaire du proxy :
Si vous obtenez des erreurs 404 sur ces routes, assurez-vous que :
  1. Le fichier proxy.ts est au bon endroit (à la racine du projet, ou dans src/ si vous utilisez un répertoire src/)
  2. Le proxy est correctement configuré avec le motif matcher indiqué à l’étape 6
  3. Le serveur de développement a bien été redémarré après la création du fichier proxy
Auth0 Next.js SDK v4 prend en charge les modèles App Router et Pages Router. Voici quelques modèles courants côté serveur :
app/protected/page.tsx
Pour gérer l’état d’authentification côté client, utilisez le hook useUser :
components/UserProfile.tsx
Pour protéger une route d’API, utilisez la méthode withApiAuthRequired :
app/api/protected/route.ts
Si vous utilisez un service backend tiers (comme Convex, Supabase ou Firebase) qui exige des jetons d’authentification Auth0, vous devrez transmettre le jeton d’accès de votre application Next.js au client backend.

Obtenir le jeton d’accès

Côté serveur (App Router) :
app/api/token/route.ts
Côté client :
lib/convex-client.ts

Configurer votre backend

La plupart des services tiers ont besoin de votre domaine Auth0 et de votre audience pour valider les jetons. Dans la configuration de votre backend :
convex/auth.config.ts
Assurez-vous que votre application Auth0 est configurée avec une audience d’API si votre backend l’exige. Vous pouvez la définir dans le Auth0 Dashboard sous Applications → APIs, ou ajouter AUTH0_AUDIENCE à votre .env.local et configurer le SDK en conséquence.

Résolution des problèmes liés aux jetons

Si ctx.auth.getUserIdentity() renvoie null dans votre backend :
  1. Vérifiez que le jeton est bien transmis : consultez l’onglet Network des DevTools de votre navigateur pour confirmer que le jeton est inclus dans les requêtes
  2. Vérifiez le format du jeton : assurez-vous de transmettre le accessToken, et non le idToken
  3. Vérifiez la configuration du backend : confirmez que votre backend utilise le bon domaine Auth0 et le bon ID client
  4. Vérifiez l’audience : si vous utilisez l’API Auth0, assurez-vous que AUTH0_AUDIENCE est défini et correspond à votre identifiant d’API
  5. Inspectez les claims du jeton : décodez votre JWT sur jwt.io pour vérifier qu’il contient les claims attendus