Utiliser l’IA pour intégrer Auth0
Utiliser l’IA pour intégrer Auth0
@auth0/nextjs-auth0, créera les routes API et configurera les variables d’environnement. Documentation complète des agent skills →Pour commencer
Créer un nouveau projet
Créer les fichiers du projet
Configurez votre application Auth0
- Configuration rapide (recommandée)
- CLI
- Auth0 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 les composants Login, Logout et Profile
Mettre à jour la structure de la page 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 ce qui suit :Lancez votre application
/auth/* (et non sous /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
Erreur JWEDecryptionFailed
Erreur JWEDecryptionFailed
JWEDecryptionFailed: decryption operation failed, elle est causée soit par une valeur AUTH0_SECRET invalide, soit par un ancien témoin de session chiffré avec un secret différent.Solution :- Générez un nouveau secret avec :
- Mettez à jour votre fichier
.env.local:
-
Supprimez les témoins 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émarrage du serveur : Après avoir créé le fichier proxy, redémarrez le serveur de développement
- Vérification des 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 été créés
- Vérifiez les chemins : Assurez-vous que les composants se trouvent dans le répertoire
src/components/ - Redémarrez TypeScript : Appuyez sur
Cmd+Shift+P(Mac) ouCtrl+Shift+P(Windows), puis exécutez « TypeScript: Restart TS Server » - Vérifiez les importations : Assurez-vous d’utiliser
@/components/*(et non~/components/*)
Utilisation avancée
Changements importants dans la v4
Changements importants dans la v4
- Aucun gestionnaire de route dynamique requis - Les routes d’authentification sont montées automatiquement par le proxy
- Configuration simplifiée de l’application -
new Auth0Client()lit automatiquement les variables d’environnement - Nouveaux chemins de route - Les routes se trouvent sous
/auth/*plutôt que sous/api/auth/* - Proxy requis - Toutes les fonctionnalités d’authentification passent par
proxy.ts - Utilisez des balises
<a>- La navigation doit utiliser<a href="/auth/login">plutôt que des boutons avec onClick
Routes d’authentification
Le SDK monte automatiquement ces routes via le proxy :| Route | Objectif |
|---|---|
/auth/login | Lancer la connexion |
/auth/logout | Déconnecter l’utilisateur |
/auth/callback | Traiter le callback Auth0 |
/auth/profile | Obtenir le profil de l’utilisateur |
/auth/access-token | Obtenir le jeton d’accès |
/auth/backchannel-logout | Traiter la déconnexion backchannel |
- Le fichier
proxy.tsse trouve 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 é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 API
- Pages Router - Page
Authentification côté client
Authentification côté client
useUser :Protection des routes d’API
Protection des routes d’API
withApiAuthRequired :Utilisation des jetons Auth0 avec des backends tiers
Utilisation des jetons Auth0 avec des backends tiers
Obtention du jeton d’accès
Côté serveur (App Router) :Configuration de votre backend
La plupart des services tiers ont besoin de votre Domaine Auth0 et de votre audience pour vérifier les jetons. Dans la configuration de votre backend :AUTH0_AUDIENCE à votre fichier .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 Réseau des outils de développement du 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 une 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 attendues