# Cycle de vie - Session ## Diagramme ```mermaid stateDiagram-v2 [*] --> Active: Connexion Active --> Active: Refresh token Active --> Expired: Inactivité 30j Active --> Revoked: Déconnexion manuelle Active --> Revoked: Changement mot de passe Active --> Revoked: Replay attack Expired --> [*] Revoked --> [*] ``` ## Règles | État | Condition | Description | |------|-----------|-------------| | Active | `revoked_at IS NULL` | Access token 15min, Refresh token 30j | | Expired | `refresh_token_expires_at < NOW()` | Inactivité 30j | | Revoked | `revoked_at IS NOT NULL` | Révoquée manuellement | **Rotation** : Refresh token rotatif (nouveau à chaque refresh) **Sécurité** : Tokens hashés SHA256, révocation globale si replay attack **Nettoyage** : Suppression sessions expirées/révoquées > 7j/30j