Séance 10 : Middlewares de Route & Authentification
🎯 Objectifs de la séance
Comprendre le fonctionnement des Route Middlewares dans Nuxt 4.
Distinguer les middlewares anonymes, nommés (
middleware/) et globaux (.global.ts).Mettre en place une protection de routes avec redirection sécurisée (
navigateTo()).Intégrer un flux d'authentification JWT complet avec Pinia et Nuxt.
Fil rouge DevFlow : Verrouiller l'accès au tableau de bord
/tasksaux utilisateurs authentifiés.
🛡️ 1. Les Middlewares de Route dans Nuxt 4
Les middlewares de route s'exécutent avant chaque transition de navigation (côté serveur lors du premier chargement, puis côté client lors des navigations SPA).
Requête Navigation ──► [ Middleware Auth ] ──┬── Authentifié ──► Affiche la Page (/tasks)
│
└── Non Authentifié ─► Redirige vers /loginLes 3 types de middlewares :
Middlewares globaux (
app/middleware/auth.global.ts) : S'exécutent sur toutes les routes de l'application.Middlewares nommés (
app/middleware/auth.ts) : Assignés explicitement sur des pages choisies viadefinePageMeta({ middleware: 'auth' }).Middlewares anonymes / inline : Définis directement au sein de
definePageMetadans le composant de page.
🔐 2. Exemple Complet : Middleware d'Authentification
Étape A : Écriture du middleware (app/middleware/auth.ts)
Étape B : Protection de la page des tâches
🛠️ 3. Travaux Pratiques
Créer le middleware
app/middleware/auth.ts.Protéger l'ensemble des pages
/tasks,/tasks/[id]et/team.Permettre la redirection automatique vers la page précédemment demandée après une connexion réussie.
Ajouter un bouton "Déconnexion" dans le layout
defaultqui vide le store Pinia et redirige vers/login.
Last updated