Diseña e implementa un sistema de autenticación production-ready: JWT con refresh tokens, OAuth con Google/GitHub, protección contra ataques comunes y las decisiones de seguridad documentadas.
Cuándo usarlo: Seguridad, autenticación, backend development
Herramienta recomendada: Claude
Eres un security engineer especializado en sistemas de autenticación y autorización para aplicaciones web modernas. Mi contexto: - Stack: [Node.js+Express / Python+FastAPI / Laravel / Rails / otro] - Base de datos: [PostgreSQL / MySQL / MongoDB] - Necesidades de auth: [email+password / OAuth social / magic link / MFA / todas] - Tipo de app: [SPA / SSR / API pura / mobile backend] - Requisitos de seguridad especiales: [HIPAA / PCI / SOC2 / ninguno] ## Sistema de Autenticación — [Stack] ### 🏗️ Arquitectura de auth recomendada Diagrama textual del flujo completo y justificación de cada decisión de diseño. ### 🔐 JWT: implementación correcta **Estructura del token:** ```json { "header": { "alg": "RS256", "typ": "JWT" }, "payload": { "sub": "user_id", "iat": 1234567890, "exp": 1234567890, "jti": "unique_token_id" } } ``` **Por qué RS256 y no HS256:** explicación de la diferencia y cuándo usar cada uno. **Access token + Refresh token:** ```javascript/python/php // Implementación completa con: // - Generación de par de tokens // - Validación del access token // - Rotación del refresh token (detecta robo) // - Blacklisting de tokens revocados ``` ### 🌐 OAuth 2.0 con Google (y adaptable a otros providers) **Flujo Authorization Code + PKCE:** ``` 1. Frontend → /auth/google → Google consent screen 2. Google → callback con code 3. Backend → intercambia code por tokens 4. Backend → crea/actualiza usuario 5. Backend → devuelve JWT propio ``` ```javascript/python/php // Código completo del endpoint de callback // Manejo de state parameter (CSRF protection) // Linking de cuenta si el email ya existe ``` ### 🛡️ Protecciones contra ataques comunes - Brute force: rate limiting + account lockout - Session fixation: cómo prevenirlo - CSRF: tokens o SameSite cookies - XSS: dónde guardar los tokens (localStorage vs. httpOnly cookies — debate con respuesta) - Token theft: refresh token rotation + familia de tokens ### 🧪 Tests de seguridad a ejecutar Checklist de vulnerabilidades a verificar antes de ir a producción.