Outils pour utilisateurs

Outils du site


ujusum:2-implantation:2-authentification

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

ujusum:2-implantation:2-authentification [2026/06/20 15:23] – créée 88.174.75.218ujusum:2-implantation:2-authentification [2026/06/29 22:01] (Version actuelle) – supprimée 83.202.252.200
Ligne 1: Ligne 1:
-====== Sprint 1 — Module Authentification ====== 
  
-===== Objectif du Sprint ===== 
- 
-Mettre en place l'ensemble des fondations de sécurité de la plateforme. 
- 
-À l'issue du Sprint 1 : 
- 
-  * Un utilisateur peut créer un compte 
-  * Un utilisateur peut se connecter 
-  * Un utilisateur peut rafraîchir sa session 
-  * Un utilisateur peut gérer son profil 
-  * Les rôles sont opérationnels 
-  * Les permissions sont opérationnelles 
-  * Les routes sont protégées 
-  * Swagger documente l'ensemble du module 
-  * Les tests sont automatisés 
- 
-Ce sprint débloque l'ensemble des autres développements métiers. 
- 
----- 
- 
-====== Périmètre ====== 
- 
-===== Module Auth ===== 
- 
-<code> 
-AuthModule 
- 
-UsersModule 
- 
-RolesModule 
- 
-PermissionsModule 
-</code> 
- 
----- 
- 
-====== User Stories ====== 
- 
-===== US-001 : Création de compte ===== 
- 
-**En tant que visiteur** 
- 
-Je souhaite créer un compte 
- 
-Afin de pouvoir utiliser la plateforme. 
- 
----- 
- 
-===== Critères d'acceptation ===== 
- 
-  * Email obligatoire 
-  * Email unique 
-  * Mot de passe obligatoire 
-  * Hash BCrypt 
-  * Compte créé en base 
-  * Profil créé automatiquement 
- 
----- 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /auth/register 
-</code> 
- 
----- 
- 
-===== DTO ===== 
- 
-<code ts> 
-export class RegisterDto { 
- 
-  email: string; 
- 
-  password: string; 
- 
-  firstName: string; 
- 
-  lastName: string; 
- 
-} 
-</code> 
- 
----- 
- 
-====== US-002 : Connexion ====== 
- 
-**En tant qu'utilisateur** 
- 
-Je souhaite me connecter 
- 
-Afin d'accéder à mon espace. 
- 
----- 
- 
-===== Critères d'acceptation ===== 
- 
-  * Vérification email 
-  * Vérification mot de passe 
-  * JWT généré 
-  * Refresh Token généré 
- 
----- 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /auth/login 
-</code> 
- 
----- 
- 
-===== Réponse ===== 
- 
-<code json> 
-{ 
-  "accessToken": "...", 
-  "refreshToken": "...", 
-  "expiresIn": 3600 
-} 
-</code> 
- 
----- 
- 
-====== US-003 : Rafraîchissement du token ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /auth/refresh 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-  * Refresh valide 
-  * Nouveau JWT 
-  * Nouveau Refresh Token 
- 
----- 
- 
-====== US-004 : Déconnexion ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-POST /auth/logout 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-  * Refresh Token invalidé 
-  * Session fermée 
- 
----- 
- 
-====== US-005 : Consultation profil ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-GET /users/me 
-</code> 
- 
----- 
- 
-===== Réponse ===== 
- 
-<code json> 
-{ 
-  "id": "uuid", 
-  "email": "user@test.com", 
-  "profile": { 
-    "firstName": "John", 
-    "lastName": "Doe" 
-  } 
-} 
-</code> 
- 
----- 
- 
-====== US-006 : Modification profil ====== 
- 
-===== Endpoint ===== 
- 
-<code http> 
-PUT /users/me 
-</code> 
- 
----- 
- 
-====== US-007 : Gestion des rôles ====== 
- 
-===== Rôles ===== 
- 
-<code> 
-SUPER_ADMIN 
- 
-ADMIN_AGENCE 
- 
-GESTIONNAIRE 
- 
-COMMERCIAL 
- 
-PROPRIETAIRE 
- 
-CLIENT 
-</code> 
- 
----- 
- 
-===== Tables ===== 
- 
-<code> 
-roles 
- 
-permissions 
- 
-user_roles 
- 
-role_permissions 
-</code> 
- 
----- 
- 
-====== US-008 : Contrôle d'accès RBAC ====== 
- 
-===== Exemple ===== 
- 
-<code ts> 
-@Roles('ADMIN_AGENCE') 
- 
-@Get() 
-findAll() {} 
-</code> 
- 
----- 
- 
-===== Critères ===== 
- 
-  * Vérification rôle 
-  * Vérification permission 
-  * Refus si accès interdit 
- 
----- 
- 
-====== Architecture Backend ====== 
- 
-===== Module Auth ===== 
- 
-<code> 
-src/modules/auth 
- 
-├── controllers 
- 
-├── services 
- 
-├── guards 
- 
-├── strategies 
- 
-├── dto 
- 
-├── entities 
- 
-└── tests 
-</code> 
- 
----- 
- 
-===== Controllers ===== 
- 
-<code> 
-AuthController 
- 
-UserController 
-</code> 
- 
----- 
- 
-===== Services ===== 
- 
-<code> 
-AuthService 
- 
-TokenService 
- 
-PasswordService 
- 
-UserService 
-</code> 
- 
----- 
- 
-===== Guards ===== 
- 
-<code> 
-JwtAuthGuard 
- 
-RolesGuard 
- 
-PermissionsGuard 
-</code> 
- 
----- 
- 
-===== Strategies ===== 
- 
-<code> 
-JwtStrategy 
- 
-RefreshTokenStrategy 
-</code> 
- 
----- 
- 
-====== Entités Prisma ====== 
- 
-===== User ===== 
- 
-<code prisma> 
-model User { 
- 
-  id             String @id @default(uuid()) 
- 
-  email          String @unique 
- 
-  passwordHash   String 
- 
-  status         UserStatus 
- 
-  profile        UserProfile? 
- 
-  roles          UserRole[] 
- 
-} 
-</code> 
- 
----- 
- 
-===== UserProfile ===== 
- 
-<code prisma> 
-model UserProfile { 
- 
-  id          String @id @default(uuid()) 
- 
-  userId      String @unique 
- 
-  firstName   String 
- 
-  lastName    String 
- 
-  phone       String? 
- 
-} 
-</code> 
- 
----- 
- 
-===== Role ===== 
- 
-<code prisma> 
-model Role { 
- 
-  id          String @id @default(uuid()) 
- 
-  code        String @unique 
- 
-  name        String 
- 
-} 
-</code> 
- 
----- 
- 
-====== Sécurité ====== 
- 
-===== JWT ===== 
- 
-<code> 
-Durée : 
- 
-1 heure 
-</code> 
- 
----- 
- 
-===== Refresh Token ===== 
- 
-<code> 
-Durée : 
- 
-30 jours 
-</code> 
- 
----- 
- 
-===== Hash ===== 
- 
-<code> 
-bcrypt 
- 
-12 rounds 
-</code> 
- 
----- 
- 
-===== Headers ===== 
- 
-<code> 
-Authorization: 
- 
-Bearer <token> 
-</code> 
- 
----- 
- 
-====== Swagger ====== 
- 
-===== Tags ===== 
- 
-<code> 
-Auth 
- 
-Users 
- 
-Roles 
-</code> 
- 
----- 
- 
-===== Endpoints documentés ===== 
- 
-<code> 
-POST /auth/register 
- 
-POST /auth/login 
- 
-POST /auth/refresh 
- 
-POST /auth/logout 
- 
-GET /users/me 
- 
-PUT /users/me 
-</code> 
- 
----- 
- 
-====== Frontend ====== 
- 
-===== Pages ===== 
- 
-<code> 
-/login 
- 
-/register 
- 
-/forgot-password 
- 
-/profile 
-</code> 
- 
----- 
- 
-===== Forms ===== 
- 
-<code> 
-RegisterForm 
- 
-LoginForm 
- 
-ProfileForm 
-</code> 
- 
----- 
- 
-===== Hooks ===== 
- 
-<code> 
-useLogin() 
- 
-useRegister() 
- 
-useProfile() 
- 
-useRefreshToken() 
-</code> 
- 
----- 
- 
-====== Tests ====== 
- 
-===== Unitaires ===== 
- 
-<code> 
-AuthService 
- 
-UserService 
- 
-TokenService 
-</code> 
- 
----- 
- 
-===== Intégration ===== 
- 
-<code> 
-Register Flow 
- 
-Login Flow 
- 
-Refresh Flow 
-</code> 
- 
----- 
- 
-===== E2E ===== 
- 
-<code> 
-Register 
- 
- 
- 
-Login 
- 
- 
- 
-Access Protected Route 
- 
- 
- 
-Logout 
-</code> 
- 
----- 
- 
-====== Définition de terminé ====== 
- 
-Le Sprint 1 est terminé lorsque : 
- 
-  * Register fonctionne 
-  * Login fonctionne 
-  * JWT fonctionne 
-  * Refresh fonctionne 
-  * RBAC fonctionne 
-  * Profil fonctionne 
-  * Swagger fonctionne 
-  * Tests verts 
-  * CI verte 
- 
----- 
- 
-====== Livrables ====== 
- 
-  * AuthModule 
-  * UserModule 
-  * RoleModule 
-  * DTO 
-  * Prisma Models 
-  * Swagger 
-  * Tests 
-  * Documentation 
- 
----- 
- 
-====== Démonstration Sprint ====== 
- 
-Scénario de validation : 
- 
-<code> 
-1. Création compte 
- 
-2. Connexion 
- 
-3. Réception JWT 
- 
-4. Consultation profil 
- 
-5. Modification profil 
- 
-6. Vérification rôle 
- 
-7. Déconnexion 
-</code> 
- 
-Tous les flux doivent être démontrables depuis Swagger et le Frontend. 
- 
----- 
- 
-====== Sprint suivant ====== 
- 
-===== Sprint 2 — Gestion Utilisateurs ===== 
- 
-Objectifs : 
- 
-  * Documents utilisateurs 
-  * Adresses 
-  * Vérification identité 
-  * Préférences utilisateur 
-  * Notifications utilisateur 
-  * Historique de connexion 
-  * Gestion des sessions 
- 
-Ce sprint finalise le domaine Utilisateurs avant de commencer le domaine principal : 
- 
-===== Sprint 3 ===== 
- 
-Catalogue Immobilier 
- 
-  * Création Bien 
-  * Modification Bien 
-  * Photos 
-  * Équipements 
-  * Disponibilités 
-  * Publication 
ujusum/2-implantation/2-authentification.1781961838.txt.gz · Dernière modification : 2026/06/20 15:23 de 88.174.75.218

DokuWiki Appliance - Powered by TurnKey Linux