Opensesame

Servicio simple de autenticación y gestión de usuarios.

OpenSesame

Un servicio de autenticación y gestión de usuarios construido por mí mismo, con roles y permisos integrados.

Aplicación · Código frontend · Código backend

Todo producto eventualmente necesita responder a: “¿quién es este usuario y qué está autorizado a hacer?” En lugar de recurrir a un proveedor de autenticación de terceros, construí esa parte yo mismo: una API de autenticación basada en JWT combinada con una consola de administración para gestionar usuarios, roles y permisos granulares.

Qué hace

  • Iniciar y cerrar sesión con JWT emitido como cookies httpOnly — sin tokens guardados en localStorage
  • Control de acceso de dos capas: roles generales admin / user más permisos granulares por usuario
  • Consola de administración para listar, buscar e inspeccionar usuarios
  • Los administradores aprovisionan nuevas cuentas, fuerzan restablecimiento de contraseñas y otorgan o revocan roles/permisos
  • Los usuarios pueden cambiar su propia contraseña una vez iniciada la sesión

Pantalla de inicio de sesión de OpenSesame

Consola de administración de OpenSesame

Consola de nuevo usuario de OpenSesame

Cómo está construido

Un frontend React 19 + TypeScript (React Router v7, estado basado en Context, Axios sobre autenticación por cookies) que se comunica con una API Node/Express + TypeScript respaldada por MongoDB. La API está protegida con helmet, lista blanca CORS, limitación de velocidad, validación de solicitudes y hash de contraseña con bcrypt.

  • Demo del stack completo en un comando — un stack de Docker Compose pone en marcha MongoDB, la API de autenticación y el frontend juntos, con un usuario administrador de demostración, para que cualquiera pueda probar todo localmente en minutos.
  • CI y puerta de seguridad — cada push y PR ejecuta un pipeline de verificación completo (auditoría, linting, verificación de tipos, pruebas, compilación) en ambos repositorios, más escaneo de secretos con gitleaks antes de que cualquier cosa se fusione.

Prueba la aplicación, o ejecuta la demostración de Docker tú mismo.