# Fix Cloudflare 403 Forbidden en /auth/discord ## Problema Cloudflare WAF (Web Application Firewall) está bloqueando las peticiones a `/auth/discord` con **403 Forbidden** ANTES de que lleguen al servidor backend. **Evidencia:** - Frontend correctamente apunta a `https://api.amayo.dev/auth/discord` ✅ - Backend tiene bypass de validación Cloudflare para `/auth/*` ✅ - `curl https://api.amayo.dev/auth/discord` → **403 Forbidden** - Error viene de Cloudflare, no del backend ## Solución: Opción 1 (Recomendada) - Page Rules en Cloudflare ### Pasos: 1. Ve a tu Dashboard de Cloudflare → `amayo.dev` 2. Click en **Page Rules** (en el menú lateral) 3. Click **Create Page Rule** 4. Configura la regla: ``` URL Pattern: api.amayo.dev/auth/* Settings: - Security Level: Off - Disable Performance - Disable Apps ``` 5. **Save and Deploy** ## Solución: Opción 2 (Temporal) - Desactivar Proxy en api.amayo.dev ### Pasos: 1. Ve a Cloudflare Dashboard → DNS Records 2. Encuentra el registro A para `api` 3. **Click en la nube naranja** para cambiarla a gris (DNS only) 4. Espera 1-2 minutos para propagación 5. **Prueba el login** ⚠️ **IMPORTANTE**: Esto desprotege completamente `api.amayo.dev`. Después de verificar que funciona, puedes volver a activar el proxy (nube naranja) y usar la Opción 1. ## Solución: Opción 3 - Firewall Rules para permitir /auth/* ### Pasos: 1. Ve a Cloudflare Dashboard → **Security** → **WAF** 2. Ir a **Custom Rules** o **Firewall Rules** 3. Create Rule: ``` Rule name: Allow OAuth Routes When incoming requests match: Field: URI Path Operator: starts with Value: /auth/ Then: Action: Allow ``` 4. Deploy and test ## Verificación Después de aplicar CUALQUIERA de las soluciones: ```bash # Test desde terminal curl -I https://api.amayo.dev/auth/discord # Debería devolver: HTTP/2 302 (redirect a Discord) # NO: HTTP/2 403 ``` ## Probar Login 1. Abre https://docs.amayo.dev en modo incógnito 2. Click "Continue with Discord" 3. Debería redirigir a Discord OAuth 4. Después del login → dashboard --- **Recomendación Final**: Usar **Opción 1 (Page Rules)** para permitir `/auth/*` sin desproteger todo el API.