Skip to content

Latest commit

 

History

History
127 lines (95 loc) · 3.42 KB

File metadata and controls

127 lines (95 loc) · 3.42 KB

Pruebas del Sistema de Autenticación

Pasos para probar el sistema de login

1. Configurar variables de entorno

Asegúrate de tener un archivo .env en la raíz del proyecto con:

SUPABASE_URL=tu_url_de_supabase
SUPABASE_KEY=tu_clave_anonima_de_supabase
VITE_API_URL=http://localhost:8000
VITE_SUPABASE_URL=tu_url_de_supabase
VITE_SUPABASE_ANON_KEY=tu_clave_anonima_de_supabase

2. Iniciar el backend

cd backend
npm install
npm run start:dev

El backend debería estar corriendo en http://localhost:8000

3. Iniciar el frontend

cd frontend
npm install
npm run dev

El frontend debería estar corriendo en http://localhost:3000

4. Probar el flujo de autenticación

  1. Acceder a la aplicación: Ve a http://localhost:3000

    • Deberías ser redirigido automáticamente a /auth
  2. Registrarse:

    • Completa el formulario de registro
    • Verifica que se cree la cuenta en Supabase
    • Deberías ser redirigido a la página principal
  3. Cerrar sesión:

    • Haz clic en el menú de usuario (avatar)
    • Selecciona "Cerrar Sesión"
    • Deberías ser redirigido a /auth
  4. Iniciar sesión:

    • Usa las credenciales que acabas de crear
    • Deberías ser redirigido a la página principal
  5. Probar rutas protegidas:

    • Intenta acceder directamente a /presentations
    • Deberías poder acceder si estás autenticado
    • Si no estás autenticado, deberías ser redirigido a /auth

5. Verificar en Supabase

  1. Ve al dashboard de Supabase
  2. Navega a Authentication > Users
  3. Verifica que el usuario se haya creado correctamente
  4. Verifica que los metadatos del usuario estén guardados

6. Probar la API directamente

Puedes probar los endpoints de la API usando curl o Postman:

# Registrarse
curl -X POST http://localhost:8000/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"test@example.com","password":"password123","fullName":"Test User"}'

# Iniciar sesión
curl -X POST http://localhost:8000/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"test@example.com","password":"password123"}'

# Obtener perfil (reemplaza TOKEN con el token de la respuesta anterior)
curl -X GET http://localhost:8000/auth/profile \
  -H "Authorization: Bearer TOKEN"

Posibles problemas y soluciones

Error: "Missing Supabase environment variables"

  • Verifica que las variables de entorno estén configuradas correctamente
  • Asegúrate de que el archivo .env esté en la raíz del proyecto

Error: "Invalid credentials"

  • Verifica que el usuario exista en Supabase
  • Verifica que la contraseña sea correcta

Error: "Unauthorized" en rutas protegidas

  • Verifica que el token se esté enviando correctamente
  • Verifica que el token no haya expirado

Error de CORS

  • Verifica que las URLs estén configuradas correctamente en Supabase
  • Asegúrate de que el frontend y backend estén corriendo en los puertos correctos

Funcionalidades implementadas

Frontend:

  • Formulario de login
  • Formulario de registro
  • Página de autenticación
  • Rutas protegidas
  • Menú de usuario
  • Manejo de estado de autenticación
  • Interceptores de API para tokens

Backend:

  • Endpoints de autenticación
  • Validación de tokens JWT
  • Guards de autenticación
  • Integración con Supabase

Seguridad:

  • Row Level Security (RLS) en Supabase
  • Tokens JWT para autenticación
  • Validación de entrada
  • Protección de rutas