ADR-072: CORS and browser auth
Estado
Accepted — 2026-08-23
Decisión
- API y web pueden ser orígenes distintos (
localhost:3000/:3001). - CORS: allowlist
APP_URL(ADR-046). No*. Credentials si hay cookies. - Auth de API: Bearer JWT (ADR-023). El web guarda access en memoria y refresh en httpOnly Secure cookie SameSite=Lax (o refresh también Bearer — se elige cookie httpOnly para refresh en el scaffold).
- CSRF: SameSite en cookie de refresh + origin check en mutaciones cookie-authed.
- Headers de seguridad en web (ADR-026): HSTS en prod,
X-Content-Type-Options, frame deny.
No localStorage para access de larga duración.