Skip to content

jhonysouza100/authentication-fullstack-nestjs-nextjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Proyecto de Authenticacion Full Stack

🧩 Sistema de Autenticación Fullstack TS

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Discord Backers on Open Collective Sponsors on Open Collective Donate us Support us Follow us on Twitter

Descripción:

Este proyecto implementa un sistema de autenticación completo y moderno, utilizando un stack TypeScript integrado: NestJS para el backend y Next.js para micro-frontends independientes. Está pensado para aplicaciones que requieren seguridad avanzada, alta mantenibilidad y una arquitectura lista para producción.

Incluye:

🔑 Autenticación con JWT, cookies HttpOnly, OAuth 2.0 (Google)

🛡️ Seguridad enterprise: 2FA (TOTP), rate limiting, hashing con bcrypt

🏦 PostgreSQL + Prisma (migraciones, schemas tipados)

⚡ Redis como caché y almacenamiento de sesiones/tokens

📬 Emails transaccionales (verificación y recuperación)

🧩 Microservicios frontend en Next.js con UI moderna (Shadcn/UI + Tailwind)

🐳 Orquestación completa con Docker Compose

Perfecto como base para SaaS, dashboards, sistemas internos o cualquier proyecto que requiera un esquema de autenticación robusto y escalable.


📦 Stack Tecnológico

Stack Principal: NestNext TS (NestJS + Next.js + TypeScript)

🖥️ Backend

  • NestJS: Framework modular y escalable para APIs enterprise-grade.
  • PostgreSQL: Base de datos relacional segura.
  • Redis: Caching y manejo de sesiones/tokens.
  • Prisma: ORM type-safe con migraciones automáticas.
  • Docker: Contenedorización y orquestación (Docker Compose).
  • TypeScript: Tipado end-to-end.

💻 Frontend (Microservicios)

  • Next.js: Framework React con SSR/SSG.
  • Shadcn/UI: Componentes accesibles y personalizables.
  • Axios: Cliente HTTP con interceptores seguros.
  • TanStack Query: Manejo de estado server-side.
  • React Hook Form: Formularios eficientes.
  • Zod: Validación runtime segura.
  • Tailwind CSS: Estilos rápidos y responsive.

⚙️ Características del Proyecto

Sistema de autenticación multi-capa, con enfoque en seguridad, usabilidad y escalabilidad.

🔑 Autenticación Básica

  • Passport.js (estrategias locales y sociales)
  • JWT (tokens stateless)
  • Sesiones con Cookies (HttpOnly, Secure)
  • Bcrypt (hashing con salting)
  • Tokens temporales (OTP 6 dígitos)

🛡️ Seguridad Avanzada

  • 2FA / OTP: Integración con Google Authenticator (TOTP)
  • Google OAuth 2.0: Login social con scopes y refresh tokens
  • Confirmación de email: Enlaces tokenizados con expiración
  • Recuperación de contraseñas: Emails temporales y rate limiting
  • Rate Limiting & CSRF: Protección ante abusos

🔌 Integraciones y Extras

  • Emails transaccionales: Nodemailer / SendGrid
  • Microservicios Frontend: Apps independientes con routing compartido
  • Logging & Monitoring: Winston + Sentry (opcional)
  • Testing: Jest / Supertest (backend) y React Testing Library (frontend)
  • Deployment:
    • Frontend → Vercel
    • Backend → Railway / Heroku (Docker)

🗃️ Recursos

🧠 Recursos Backend

  • API REST modular con controladores y guards
  • Prisma ORM + migraciones automáticas
  • Redis para cacheo y sesiones
  • Endpoints seguros (JWT + cookies)

🎨 Recursos Frontend

  • Micro-apps Next.js (auth, account, dashboard)
  • Formularios tipados y validados con Zod
  • Fetching con TanStack Query
  • Interceptores Axios para refresco de tokens

📚 Dependencias del Proyecto

Categoría Descripción Dependencias Principales Dev Dependencies
🧩 Módulos de NestJS Integraciones para JWT, Passport y caché @nestjs/jwt@11.0.0, @nestjs/passport@11.0.5, @nestjs/cache-manager -
🔐 Estrategias Passport Autenticación local, JWT y OAuth passport, passport-jwt, passport-local, passport-google-oauth20, passport-custom @types/passport-*
💾 Base de Datos / ORM Prisma Client + CLI @prisma/client@6.16.2 prisma@6.16.2
Validación y Transformación DTOs y schemas class-transformer, class-validator, zod -
🔒 Seguridad y Hashing Hash, 2FA, QR bcrypt, speakeasy, qrcode @types/bcrypt, @types/qrcode, @types/speakeasy
🧰 Utilidades Generales Entornos, cookies, UUIDs, emails cookie-parser, dotenv, resend, uuid @types/cookie-parser, @types/uuid
Caché Sesiones y tokens con Redis cache-manager, @keyv/redis -

🧱 Instalación

📦 Dependencias Principales

# Módulos de NestJS
npm install @nestjs/jwt @nestjs/passport @nestjs/cache-manager

# Estrategias de Passport
npm install passport passport-custom passport-google-oauth20 passport-jwt passport-local

# Base de Datos / ORM
npm install @prisma/client

# Validación y Transformación
npm install class-transformer class-validator zod

# Seguridad y Hashing
npm install bcrypt speakeasy qrcode

# Utilidades Generales
npm install cookie-parser dotenv resend uuid

# Caché
npm install cache-manager @keyv/redis

Todas las dependencias de desarrollo en un solo comando

npm install -D @types/bcrypt @types/cookie-parser @types/passport-google-oauth20 @types/passport-jwt @types/passport-local @types/qrcode @types/speakeasy @types/uuid prisma

Description

Nest framework TypeScript starter repository.

Project setup

$ npm install

Compile and run the project

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Run tests

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Deployment

When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the deployment documentation for more information.

If you are looking for a cloud-based platform to deploy your NestJS application, check out Mau, our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:

$ npm install -g @nestjs/mau
$ mau deploy

With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.

About

A fullstack authentication system built with NestJS, Next.js, and TypeScript, designed for production-ready environments. It includes classic authentication (JWT, sessions, secure cookies), TOTP-based 2FA, Google OAuth, password recovery, rate limiting, Zod validation, Prisma ORM, and a fully containerized architecture using Docker.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors