Module 06 ⭐⭐⭐ Difficile ~4h

🔐 Système d'Auth JWT Complet

Implémenter un système d'authentification production-ready : register, login, refresh tokens, logout, RBAC, reset password, et protection de routes.

🔧 Architecture Auth

// Flux complet
POST /auth/register    → Créer compte + email confirmation
POST /auth/login       → { accessToken (15m), refreshToken (7d) }
POST /auth/refresh     → Rotation tokens + nouveau couple
POST /auth/logout      → Invalider refresh token en DB
POST /auth/forgot      → Envoyer email reset password
POST /auth/reset/:token → Changer le mot de passe
GET  /auth/me          → Profil utilisateur connecté (protégé JWT)

🛡️ Guards à créer

// 1. JwtAuthGuard global (avec @Public() bypass)
// 2. RolesGuard (admin > moderator > user)
// 3. ResourceOwnerGuard (vérifie propriété d'une ressource)
// 4. RefreshTokenGuard (stratégie JWT avec secret différent)

// Décorateurs
@Public()           // Route accessible sans token
@Roles('admin')     // Restreindre par rôle
@CurrentUser()      // Extraire user de req.user
@CurrentUser('id')  // Extraire champ spécifique

✅ Fonctionnalités

← Cours ✏️ Exercices 🧠 QCM NS06 Module 07 →