Les administrateurs ont besoin d'un moyen simple pour inviter les parents à rejoindre la plateforme. Cette fonctionnalité permet de générer des codes d'invitation uniques (8 caractères alphanumériques) avec une validité de 48h, de les envoyer par email, et de les activer via une page publique dédiée qui crée automatiquement le compte parent. L'interface d'administration offre l'envoi unitaire et en masse, le renvoi, le filtrage par statut, ainsi que la visualisation de l'état de chaque invitation (en attente, activée, expirée).
41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
# Rate Limiter Configuration
|
|
# Story 1.4 - AC3: Lockout après 5 échecs répétés
|
|
|
|
framework:
|
|
rate_limiter:
|
|
# Limite les tentatives de login par email
|
|
login_attempts:
|
|
policy: fixed_window
|
|
limit: 5
|
|
interval: '15 minutes'
|
|
cache_pool: cache.rate_limiter
|
|
|
|
# Limite les tentatives de login par IP (protection contre brute force distribué)
|
|
login_by_ip:
|
|
policy: sliding_window
|
|
limit: 20
|
|
interval: '15 minutes'
|
|
cache_pool: cache.rate_limiter
|
|
|
|
# Limite les demandes de reset password par email
|
|
# Story 1.5 - AC1: Rate limiting 3 demandes/heure
|
|
password_reset_by_email:
|
|
policy: fixed_window
|
|
limit: 3
|
|
interval: '1 hour'
|
|
cache_pool: cache.rate_limiter
|
|
|
|
# Limite les demandes de reset password par IP (protection contre énumération)
|
|
password_reset_by_ip:
|
|
policy: sliding_window
|
|
limit: 10
|
|
interval: '1 hour'
|
|
cache_pool: cache.rate_limiter
|
|
|
|
# Limite les tentatives d'activation par IP (protection contre DoS via bcrypt)
|
|
parent_activation_by_ip:
|
|
policy: sliding_window
|
|
limit: 10
|
|
interval: '15 minutes'
|
|
cache_pool: cache.rate_limiter
|