Authentication

Cookie sessions

POST /auth/login avec email/password → cookie ms_session=ses_*. TTL 30 jours (sliding à chaque requête).

OAuth

POST /auth/oauth/:provider/callback — GitHub / Google / Apple. Configuration via env vars (voir dev-setup.md).

Magic link

POST /auth/magic-link/request avec un email → le lien arrive par email (ou est imprimé sur l'API stdout en console-mailer mode).

2FA flow

Après un login avec 2FA activée, le serveur renvoie 200 avec requires_2fa: true et un twofa_pending_login token. Ensuite POST /auth/2fa/verify avec ce token + le code à 6 chiffres → cookie session.