Files
amayo/CLOUDFLARE_FIX.md

81 lines
2.2 KiB
Markdown
Raw Normal View History

2025-12-01 18:59:48 +00:00
# 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.