Authentication

Cookie sessions

POST /auth/login con email/password → cookie ms_session=ses_*. TTL 30 días (sliding en cada petición).

OAuth

POST /auth/oauth/:provider/callback — GitHub / Google / Apple. Configuración vía env vars (ver dev-setup.md).

Magic link

POST /auth/magic-link/request con un email → el enlace llega por email (o se imprime en el API stdout en console-mailer mode).

2FA flow

Tras un login con 2FA activada, el servidor devuelve 200 con requires_2fa: true y un twofa_pending_login token. Luego POST /auth/2fa/verify con ese token + el código de 6 dígitos → cookie session.