Aller au contenu

PD-241 — Expression de besoin

Contexte

L'application mobile ProbatioVault (PD-106) implémente une fonctionnalité de déconnexion avec invalidation de session serveur. Le code mobile est prêt mais l'endpoint backend POST /auth/logout n'existe pas.

Problème

Actuellement, la déconnexion mobile ne peut invalider la session côté serveur car le backend ne fournit pas d'endpoint dédié. Le mobile applique un fallback (nettoyage local uniquement) mais la session serveur reste potentiellement active.

Besoin

Implémenter l'endpoint POST /auth/logout permettant à un utilisateur authentifié d'invalider sa session côté serveur.

Contraintes

  • Authentification JWT obligatoire.
  • Invalidation de la session Keycloak (revoke token).
  • Invalidation du refresh token si présent.
  • Format d'erreur aligné sur le contrat PD-106 : {error: "ERR-XXX-*", message: "..."}.
  • En cas d'échec d'invalidation Keycloak, retourner une erreur explicite (le mobile appliquera son fallback).

Critères de succès

  • L'endpoint POST /auth/logout est fonctionnel.
  • La session Keycloak est invalidée (token révoqué).
  • Le refresh token est invalidé.
  • Une tentative de réutilisation du token après logout échoue.
  • Les tests d'intégration PD-106 mobile passent.

Dépendances

  • PD-26 (Keycloak OIDC) — DONE
  • PD-28 (session/JWT) — DONE
  • PD-106 (mobile, consommateur) — EN ATTENTE de ce endpoint

Références

  • Epic : PD-182 AUTH
  • Consommateur : PD-106-specification.md (F-106-06, INV-106-13, CA-106-13, CA-106-14, ERR-106-LOGOUT-FAILED)
  • JIRA : PD-241