# Séquence - Authentification ## Diagramme ```mermaid sequenceDiagram participant U as Utilisateur participant A as App Mobile participant Z as Zitadel participant API as Backend API participant DB as PostgreSQL U->>A: Saisie email/password A->>Z: POST /oauth/token (email, password) Z->>Z: Validation credentials Z-->>A: access_token (15min) + refresh_token (30j) A->>API: GET /api/user/profile (Bearer token) API->>Z: Validation JWT Z-->>API: Token valide + user_id API->>DB: SELECT user WHERE id = ? DB-->>API: Données utilisateur API->>DB: INSERT session (hash tokens, IP, device) DB-->>API: Session créée API-->>A: Profil utilisateur A->>U: Connexion réussie ``` ## Légende **Acteurs** : - Zitadel : Gère l'authentification OAuth2/OIDC - Backend API : Valide les tokens et accède aux données **Tokens** : - Access token : 15 min (JWT), utilisé pour chaque requête API - Refresh token : 30 jours, permet renouvellement access token **Sécurité** : - Tokens stockés hashés (SHA256) en DB - Device fingerprinting (OS, navigateur, IP) - Notification si nouveau device