ujusum:1-implantation:2-authentification
Table des matières
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
AuthModule UsersModule RolesModule PermissionsModule
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
POST /auth/register
DTO
export class RegisterDto {
email: string;
password: string;
firstName: string;
lastName: string;
}
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
POST /auth/login
Réponse
{
"accessToken": "...",
"refreshToken": "...",
"expiresIn": 3600
}
US-003 : Rafraîchissement du token
Endpoint
POST /auth/refresh
Critères
- Refresh valide
- Nouveau JWT
- Nouveau Refresh Token
US-004 : Déconnexion
Endpoint
POST /auth/logout
Critères
- Refresh Token invalidé
- Session fermée
US-005 : Consultation profil
Endpoint
GET /users/me
Réponse
{
"id": "uuid",
"email": "user@test.com",
"profile": {
"firstName": "John",
"lastName": "Doe"
}
}
US-006 : Modification profil
Endpoint
PUT /users/me
US-007 : Gestion des rôles
Rôles
SUPER_ADMIN ADMIN_AGENCE GESTIONNAIRE COMMERCIAL PROPRIETAIRE CLIENT
Tables
roles permissions user_roles role_permissions
US-008 : Contrôle d'accès RBAC
Exemple
@Roles('ADMIN_AGENCE')
@Get()
findAll() {}
Critères
- Vérification rôle
- Vérification permission
- Refus si accès interdit
Architecture Backend
Module Auth
src/modules/auth ├── controllers │ ├── services │ ├── guards │ ├── strategies │ ├── dto │ ├── entities │ └── tests
Controllers
AuthController UserController
Services
AuthService TokenService PasswordService UserService
Guards
JwtAuthGuard RolesGuard PermissionsGuard
Strategies
JwtStrategy RefreshTokenStrategy
Entités Prisma
User
model User {
id String @id @default(uuid())
email String @unique
passwordHash String
status UserStatus
profile UserProfile?
roles UserRole[]
}
UserProfile
model UserProfile {
id String @id @default(uuid())
userId String @unique
firstName String
lastName String
phone String?
}
Role
model Role {
id String @id @default(uuid())
code String @unique
name String
}
Sécurité
JWT
Durée : 1 heure
Refresh Token
Durée : 30 jours
Hash
bcrypt 12 rounds
Headers
Authorization: Bearer <token>
Swagger
Tags
Auth Users Roles
Endpoints documentés
POST /auth/register POST /auth/login POST /auth/refresh POST /auth/logout GET /users/me PUT /users/me
Frontend
Pages
/login /register /forgot-password /profile
Forms
RegisterForm LoginForm ProfileForm
Hooks
useLogin() useRegister() useProfile() useRefreshToken()
Tests
Unitaires
AuthService UserService TokenService
Intégration
Register Flow Login Flow Refresh Flow
E2E
Register ↓ Login ↓ Access Protected Route ↓ Logout
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 :
1. Création compte 2. Connexion 3. Réception JWT 4. Consultation profil 5. Modification profil 6. Vérification rôle 7. Déconnexion
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/1-implantation/2-authentification.txt · Dernière modification : 2026/06/06 03:11 de 91.170.108.99