Primary Auth Model
- Protected user routes expect `Authorization: Bearer <jwt>`.
- JWTs are signed with `SESSION_SECRET` and expire in 1 day.
- When no bearer token is present, the generic auth middleware attempts `x-api-key` or `api_key` query auth for supported flows.