GameControl - Gestión de Salas Gaming

Login en Producción (GameControl)

Este documento deja listo el login con Supabase y la tabla public.usuarios, con funciones seguras y un usuario admin inicial para entrar al sistema.

1) Requisitos

2) Aplicar el SQL de prerequisitos

Archivo: sql/login_prereqs.sql

Qué hace:

Pasos:

  1. Copia el contenido de sql/login_prereqs.sql y ejecútalo en el SQL Editor de Supabase.
  2. Verifica que el RPC auth_login_v2 aparece en la sección de Funciones (o espera 1 minuto a que PostgREST refresque el esquema).

3) Probar el login

  1. Abre login.html (idealmente servido desde un servidor estático o GitHub Pages).
  2. Inicia sesión con el usuario admin de seed:
    • Email: admin@gamecontrol.local
    • Password: ChangeMe123!
  3. Si entra, serás redirigido a index.html (dashboard).

Notas:

4) Crear tu(s) usuario(s) real(es)

Usa el siguiente ejemplo (SQL Editor) para crear un usuario operador real con password ya hasheado en el servidor:

insert into public.usuarios (nombre, email, password_hash, rol, estado, permisos)
values (
  'Operador Tienda',
  'operador@tu-dominio.com',
  public.hash_password('TuPasswordFuerte2025!'),
  'operador',
  'activo',
  '{"dashboard": true, "salas": true, "ventas": true}'::jsonb
);

Luego, ese operador podrá iniciar sesión directamente en login.html. La primera vez, el sistema intentará crear la sesión en Supabase Auth con signInWithPassword y, si no existe, hará signUp (maneja “already registered”).

5) Cambiar el password del admin de seed

update public.usuarios
   set password_hash = public.hash_password('NuevoPasswordMuySeguro!')
 where lower(email) = lower('admin@gamecontrol.local');

6) Consideraciones de seguridad

7) Troubleshooting rápido


Con esto, el login queda listo para producción con datos reales iniciales y un flujo seguro vía RPC + Supabase Auth.