feat: Gestion des sessions utilisateur
Permet aux utilisateurs de visualiser et gérer leurs sessions actives sur différents appareils, avec la possibilité de révoquer des sessions à distance en cas de suspicion d'activité non autorisée. Fonctionnalités : - Liste des sessions actives avec métadonnées (appareil, navigateur, localisation) - Identification de la session courante - Révocation individuelle d'une session - Révocation de toutes les autres sessions - Déconnexion avec nettoyage des cookies sur les deux chemins (legacy et actuel) Sécurité : - Cache frontend scopé par utilisateur pour éviter les fuites entre comptes - Validation que le refresh token appartient à l'utilisateur JWT authentifié - TTL des sessions Redis aligné sur l'expiration du refresh token - Événements d'audit pour traçabilité (SessionInvalidee, ToutesSessionsInvalidees) @see Story 1.6 - Gestion des sessions
This commit is contained in:
15
Makefile
15
Makefile
@@ -103,8 +103,17 @@ test-js: ## Lancer les tests Vitest
|
||||
docker compose exec frontend pnpm run test
|
||||
|
||||
.PHONY: e2e
|
||||
e2e: ## Lancer les tests E2E Playwright
|
||||
docker compose exec frontend pnpm run test:e2e
|
||||
e2e: e2e-ci e2e-ratelimit ## Lancer tous les tests E2E (CI + rate limiting)
|
||||
|
||||
.PHONY: e2e-ci
|
||||
e2e-ci: ## Lancer les tests E2E sans rate limiting (rapide, parallèle)
|
||||
docker compose exec php php bin/console cache:pool:clear cache.rate_limiter --env=dev
|
||||
cd frontend && CI=true PLAYWRIGHT_BASE_URL=http://ecole-alpha.classeo.local:5174 npx playwright test
|
||||
|
||||
.PHONY: e2e-ratelimit
|
||||
e2e-ratelimit: ## Lancer les tests de rate limiting (lent, séquentiel)
|
||||
docker compose exec php php bin/console cache:pool:clear cache.rate_limiter --env=dev
|
||||
cd frontend && PLAYWRIGHT_BASE_URL=http://ecole-alpha.classeo.local:5174 npx playwright test --workers=1 --grep="Rate Limiting|CAPTCHA"
|
||||
|
||||
# =============================================================================
|
||||
# Tout-en-un
|
||||
@@ -156,6 +165,8 @@ ci: ## Lancer TOUS les tests et checks (comme en CI)
|
||||
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
@echo " ✅ Tous les checks sont passés !"
|
||||
@echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
@echo ""
|
||||
@echo " Note: Tests E2E (make e2e) à lancer séparément depuis l'hôte"
|
||||
|
||||
# =============================================================================
|
||||
# Scripts
|
||||
|
||||
Reference in New Issue
Block a user