He creado varios scripts para facilitar la integración:
- ✅
setup-supabase.bat- Instalación CLI y aplicación de migración - ✅
create-admin-user.bat- Creación del usuario admin - ✅
test-auth-system.sh- Tests completos (Linux/Mac) - ✅
test-auth-simple.bat- Tests básicos (Windows) - ✅
INTEGRATION-GUIDE.md- Esta guía
-
Asegurar que el servidor esté parado:
# Si npm run dev está corriendo, detenerlo con Ctrl+C -
Verificar archivos necesarios:
# Verificar que la migración existe ls -la supabase/migrations/20260220_users_role.sql # Verificar variables de entorno cat .env.local | grep SUPABASE
Opción A - Usando NPM (Recomendado):
npm install -g @supabase/cliOpción B - Usando el script automatizado:
./setup-supabase.bat-
Login a Supabase:
supabase login
- Te pedirá un access token
- Ve a: https://supabase.com/dashboard/account/tokens
- Crea un token y pégalo
-
Inicializar proyecto (si es necesario):
supabase init
-
Vincular con tu proyecto:
supabase link --project-ref ktqgoxxwlqlbctkvqepl
- Usar el project ref de tu .env.local
# Aplicar la migración automáticamente
supabase db pushVerificar que se aplicó correctamente:
# Verificar mediante SQL
supabase db reset --linkedOpción A - Dashboard Manual:
- Ve a https://supabase.com/dashboard
- Authentication > Users > Add user
- Email:
admin@boreas.mx - Password: (tu elección)
- Auto Confirm: ✅
Opción B - Usar script:
./create-admin-user.batEn Supabase Dashboard > SQL Editor:
-- Obtener UUID del admin
SELECT id FROM auth.users WHERE email = 'admin@boreas.mx';
-- Asignar role admin (reemplazar <UUID>)
INSERT INTO public.users (id, role)
VALUES ('<UUID>', 'admin')
ON CONFLICT (id) DO UPDATE SET role = 'admin';
-- Verificar
SELECT au.email, pu.role
FROM auth.users au
JOIN public.users pu ON au.id = pu.id
WHERE pu.role = 'admin';-
Iniciar servidor:
npm run dev
-
Ejecutar tests básicos:
# Windows test-auth-simple.bat # Linux/Mac chmod +x test-auth-system.sh ./test-auth-system.sh
# Sin autenticación - debería redirigir
curl -v http://localhost:3000/admin/dashboard
# Resultado esperado: 302/307 redirect a /admin/login# Test admin endpoints sin auth
curl -v http://localhost:3000/api/admin/leads
curl -v http://localhost:3000/api/admin/stats
# Resultado esperado: 401 Unauthorized o 403 Forbidden# Login page accesible
curl -v http://localhost:3000/admin/login
# Resultado esperado: 200 OK- Abrir browser a http://localhost:3000
- F12 > Console
- Navegar por:
/(landing)/admin/login- Login con admin
/admin/dashboard
- Resultado esperado: 0 errores en consola
- Ve a http://localhost:3000/admin/login
- Login con
admin@boreas.mxy tu password - Resultado esperado: Redirect a dashboard
- Intenta acceder a http://localhost:3000/admin/dashboard sin sesión
- Resultado esperado: Redirect a login
| Endpoint | Sin Auth | Con Auth User | Con Auth Admin |
|---|---|---|---|
/ |
200 | 200 | 200 |
/admin/login |
200 | 302→dashboard | 302→dashboard |
/admin/dashboard |
302→login | 403 | 200 |
/api/admin/leads |
401 | 403 | 200 |
/api/admin/stats |
401 | 403 | 200 |
npm install -g @supabase/cli
# O reiniciar terminal después de instalación- Verificar project ref en comando link
- Verificar access token
- Verificar internet connection
- Verificar que la migración se aplicó
- Verificar variables de entorno
- Verificar que Supabase project esté activo
- Revisar logs del servidor Next.js
- Verificar variables de entorno
- Verificar que no hay errores de sintaxis
- Verificar que el user fue creado en auth.users
- Verificar que tiene role='admin' en public.users
- Revisar console logs del navegador
- Supabase CLI instalado y configurado
- Migración aplicada correctamente
- Usuario admin creado en auth.users
- Role admin asignado en public.users
- Servidor Next.js corriendo sin errores
- Tests de curl pasan correctamente
- Login funciona end-to-end
- Dashboard accesible con admin
- API endpoints responden correctamente
- Console del navegador limpia (0 errores)
Al completar estos pasos tendrás:
✅ Sistema de autenticación completamente funcional ✅ Admin user operativo ✅ Middleware de seguridad activo ✅ APIs protegidas correctamente ✅ Zero errores en consola ✅ Tests automatizados disponibles
¡Tu sistema está listo para producción! 🚀