Utilisez l’IA pour intégrer Auth0
Utilisez l’IA pour intégrer Auth0
@auth0/nextjs-auth0, créera des routes d’API et configurera les variables d’environnement. Documentation complète sur Agent Skills →Pour commencer
Créer un nouveau projet
Installer le SDK Auth0 Next.js
shellscript npm install @auth0/nextjs-auth0 Créer les fichiers du projet
Configurez votre Auth0 App
- Configuration rapide (recommandée)
- CLI
- Dashboard
.env prérempli avec les bonnes valeurs de configuration.Créer la configuration d’Auth0
src/lib/auth0.ts :Ajouter un proxy
src/proxy.ts :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./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
Créer des composants de connexion, de déconnexion et de profil
Mettez à jour votre page d’accueil
src/app/page.tsx par :Mettre à jour le layout avec Auth0Provider
src/app/layout.tsx pour charger la police Inter et entourer votre application de Auth0Provider :Configurer Tailwind CSS
src/app/globals.css par :Lancez votre application
/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:3001Dépannage
JWEDecryptionFailed Error
JWEDecryptionFailed Error
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 :- Générez un nouveau secret avec :
- Mettez à jour votre fichier
.env.local:
-
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
- Chrome/Edge : Appuyez sur
- Redémarrez votre serveur de développement :
Erreur 404 sur /auth/login
Erreur 404 sur /auth/login
- Emplacement du proxy : Assurez-vous que
src/proxy.tsse trouve au bon endroit - Code du proxy : Vérifiez que le proxy correspond au code de l’étape 6
- Redémarrer le serveur : Après avoir créé le fichier proxy, redémarrez le serveur de développement
- Vérifier les importations : Assurez-vous que le chemin
import { auth0 } from "./lib/auth0"est correct
Erreurs Module Not Found
Erreurs Module Not Found
- Vérifiez que les fichiers existent : Assurez-vous que tous les fichiers de l’étape 3 ont bien été créés
- Vérifiez les chemins : Assurez-vous que les composants se trouvent dans le répertoire
src/components/ - Redémarrer TypeScript : Appuyez sur
Cmd+Shift+P(Mac) ouCtrl+Shift+P(Windows), puis exécutez “TypeScript: Restart TS Server” - Vérifier les importations : Assurez-vous d’utiliser
@/components/*(et non~/components/*)
Utilisation avancée
Changements importants de la v4
Changements importants de la v4
- 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 :- Le fichier
proxy.tsest au bon endroit (à la racine du projet, ou danssrc/si vous utilisez un répertoiresrc/) - Le proxy est correctement configuré avec le motif
matcherindiqué à l’étape 6 - Le serveur de développement a bien été redémarré après la création du fichier proxy
Authentification côté serveur
Authentification côté serveur
- App Router - composant serveur
- App Router - route d’API
- Pages Router - page
Authentification côté client
Authentification côté client
useUser :Protection des routes d’API
Protection des routes d’API
withApiAuthRequired :Utiliser des jetons Auth0 avec des backends tiers
Utiliser des jetons Auth0 avec des backends tiers
Obtenir le jeton d’accès
Côté serveur (App Router) :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 :AUTH0_AUDIENCE à votre .env.local et configurer le SDK en conséquence.Résolution des problèmes liés aux jetons
Sictx.auth.getUserIdentity() renvoie null dans votre backend :- 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
- Vérifiez le format du jeton : assurez-vous de transmettre le
accessToken, et non leidToken - Vérifiez la configuration du backend : confirmez que votre backend utilise le bon domaine Auth0 et le bon ID client
- Vérifiez l’audience : si vous utilisez l’API Auth0, assurez-vous que
AUTH0_AUDIENCEest défini et correspond à votre identifiant d’API - Inspectez les claims du jeton : décodez votre JWT sur jwt.io pour vérifier qu’il contient les claims attendus