Authentication

Cookie sessions

POST /auth/login с email/password → cookie ms_session=ses_*. TTL 30 дней (sliding на каждый запрос).

OAuth

POST /auth/oauth/:provider/callback — GitHub / Google / Apple. Конфигурация — env vars (см. dev-setup.md).

Magic link

POST /auth/magic-link/request с email → ссылка приходит на email (или печатается в API stdout в console-mailer mode).

2FA flow

После login с включенным 2FA сервер возвращает 200 с requires_2fa: true и twofa_pending_login token. Затем POST /auth/2fa/verify с этим токеном + 6-значным кодом → cookie session.