Outils pour utilisateurs

Outils du site


ujusum:1-implantation:2-authentification

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

DokuWiki Appliance - Powered by TurnKey Linux