Files
amayo/CLOUDFLARE_FIX.md
2025-12-01 18:59:48 +00:00

2.2 KiB

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/discord403 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 → SecurityWAF
  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:

# 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.