@eqs/auth : un compte suspendu (banned) ouvre encore une session, et ses clés d'API restent valides #138

Closed
opened 2026-10-12 09:28:48 +00:00 by nicolas-fryder · 0 comments

Commande

  1. Poser banned = true sur un compte, puis POST /api/auth/sign-in/email avec son mot de passe.
  2. Appeler une route gardée avec une clé d'API dont ce compte est propriétaire.

Attendu

  1. Pas de session.
  2. 401 : une clé ne porte jamais plus que son propriétaire, et un propriétaire suspendu ne porte plus rien.

Observé

  1. La session est créée (better-auth ne lit banned qu'avec son plugin admin, que creerAuth ne monte pas). La garde refuse ensuite (Compte suspendu, index.ts:757), mais la session existe.
  2. 200 : principalDepuisCle ne lit pas le propriétaire.

Versions

@eqs/auth 0.19.0 / 0.20.0.

Contournement

ATLAS ajoute un petit plugin bannissement (refus à la création de session) et vérifie le propriétaire dans son DepotCles.

Proposition

Refuser la création de session d'un compte banned dans creerAuth, et donner à DepotCles (ou à depotClesPrisma) la vérification du propriétaire. Deux contrôles de conformité : compte-suspendu-session, compte-suspendu-cle.

Ouvert depuis le rejeu du rétrofit d'ATLAS (étape 5a).

## Commande 1. Poser `banned = true` sur un compte, puis `POST /api/auth/sign-in/email` avec son mot de passe. 2. Appeler une route gardée avec une clé d'API dont ce compte est propriétaire. ## Attendu 1. Pas de session. 2. 401 : une clé ne porte jamais plus que son propriétaire, et un propriétaire suspendu ne porte plus rien. ## Observé 1. La session est créée (better-auth ne lit `banned` qu'avec son plugin `admin`, que `creerAuth` ne monte pas). La garde refuse ensuite (`Compte suspendu`, index.ts:757), mais la session existe. 2. 200 : `principalDepuisCle` ne lit pas le propriétaire. ## Versions @eqs/auth 0.19.0 / 0.20.0. ## Contournement ATLAS ajoute un petit plugin `bannissement` (refus à la création de session) et vérifie le propriétaire dans son `DepotCles`. ## Proposition Refuser la création de session d'un compte `banned` dans `creerAuth`, et donner à `DepotCles` (ou à `depotClesPrisma`) la vérification du propriétaire. Deux contrôles de conformité : `compte-suspendu-session`, `compte-suspendu-cle`. *Ouvert depuis le rejeu du rétrofit d'ATLAS (étape 5a).*
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Infrastructure/eqs-platform#138
No description provided.