Nest.js Paso a Paso: Añadir Sistema de Usuarios

Guía de Nest.js para autenticación con sesiones: registro y login con bcrypt, vistas de registro/login y rutas protegidas.

27 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

En el tutorial anterior construimos un blog básico que permite crear artículos pero no incluye ningún mecanismo de autenticación, por lo que cualquiera podía crear o eliminar entradas. En esta guía vamos a añadir progresivamente un sistema de usuarios y autenticación para proteger la aplicación. Empezamos explicando métodos de autenticación y luego implementamos un sistema de registro y validación de inicio de sesión con Nest.js.

Métodos de autenticación comunes en desarrollo web: Token based como JWT y Session based con cookies. JWT genera un token tras el login que el cliente envía en cada petición; es útil en arquitecturas distribuidas porque el servidor no mantiene estado de sesión. Session cookie crea una sesión en el servidor y devuelve un identificador en una cookie que el navegador envía automáticamente, lo que permite al servidor localizar la sesión almacenada. Para este proyecto elegimos Session cookie por ser la opción más directa y clásica para aplicaciones con arquitectura tradicional y porque Nest.js ofrece buen soporte para sesiones.

Crear módulo de usuarios. Con Nest CLI genera los artefactos básicos: nest generate module users nest generate controller users nest generate service users. Crea un archivo user.entity.ts en src/users con campos id tipo UUID, username y password. Registra TypeOrmModule en users.module para trabajar sobre la entidad User y exporta UsersService para que pueda usarse desde otros módulos como auth. En la base de datos PostgreSQL crea la tabla de usuarios, por ejemplo con la sentencia SQL CREATE TABLE user ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), username VARCHAR UNIQUE NOT NULL, password VARCHAR NOT NULL );

Registro de usuarios. Antes de almacenar contraseñas hay que cifrarlas. Instala bcrypt con npm install bcrypt y las definiciones de tipo con npm install -D @types/bcrypt. En UsersService implementa un método create que reciba los datos, aplique bcrypt hash con saltRounds 10 y guarde el nuevo usuario en la base de datos, y un método findOne que busque por username.

Módulo de autenticación y validación. Genera el módulo y servicio con nest generate module auth y nest generate service auth. Implementa en AuthService un método validateUser que consulte UsersService para obtener el usuario y compare la contraseña con bcrypt compare. Si la validación es correcta devuelve los datos del usuario sin la contraseña, en caso contrario devuelve null.

Vistas de registro y login. Crea plantillas register.ejs y login.ejs con formularios para username y password que realicen POST a users/register y auth/login respectivamente. En el controlador de usuarios muestra la vista de registro con una ruta GET register y procesa la sumisión con POST register invocando UsersService.create y redirigiendo a auth/login al completar el registro.

En auth.controller implementa GET login para mostrar la vista y POST login que use AuthService.validateUser. Si la validación falla devuelve un error 401 Unauthorized, si tiene éxito redirige a la página principal de posts. Este flujo permite verificar credenciales pero aún no mantiene una sesión persistente en el servidor; eso lo abordaremos en el siguiente artículo añadiendo gestión de sesiones y restricciones de acceso según permisos.

Integración final. Importa UsersModule y AuthModule en AppModule para que el sistema esté disponible en la aplicación. Arranca el proyecto con npm run start:dev y prueba registrar un usuario en https://localhost:3000/users/register y luego iniciar sesión en https://localhost:3000/auth/login. Si introduces credenciales incorrectas verás un 401 Unauthorized, y si todo es correcto serás redirigido a la lista de posts.

Sobre Q2BSTUDIO. En Q2BSTUDIO somos una empresa de desarrollo de software a medida y aplicaciones a medida que combina experiencia en desarrollo backend y frontend con especialización en inteligencia artificial y ciberseguridad. Ofrecemos servicios cloud en AWS y Azure, soluciones de inteligencia de negocio y desarrollo de agentes IA para empresas. Si necesitas un proyecto a medida para tu negocio consulta nuestros servicios de desarrollo en el enlace a la landing de desarrollo de aplicaciones desarrollo de aplicaciones y software multiplataforma y descubre nuestras capacidades en inteligencia artificial en soluciones de IA para empresas.

Palabras clave incluidas para mejorar posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. En próximos capítulos implementaremos persistencia de sesión con cookies, protección de rutas mediante guards y autorización por roles, además de integrar mejores prácticas de seguridad como el almacenamiento seguro de cookies, regeneración de identificadores de sesión y protección CSRF. Si quieres que adaptemos este flujo a un proyecto real, en Q2BSTUDIO podemos diseñar e implementar la solución completa, desde la arquitectura hasta el despliegue y monitoreo en la nube.

Lecturas relacionadas y siguientes pasos: en el siguiente artículo completaremos la autenticación con sesiones y mostraremos cómo restringir acceso a páginas y funcionalidades en función del usuario autenticado. Mientras tanto puedes explorar nuestras otras soluciones de Business Intelligence con Power BI para explotar los datos de tus aplicaciones y obtener informes accionables.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.