SecureAuth

A production-ready authentication app built with Express.js and Next.js. It includes user registration, login, email verification, password reset, and secure access using JWT and Passport.js.

No Preview Available | Github
SecureAuth
Tech Stack

Frontend:

Next.js
Tailwind CSS
React

Backend:

Node.js
Express.js

Database:

MongoDB

ORM:

Mongoose

Tools:

Postman
Git
GitHub
Nodemailer
Bcrypt
JWT
Passport.js

Deployment:

Vercel

What the project is?

SecureAuth is a modern authentication system supporting features like email/password login, email verification, password reset, and JWT-based session handling. It uses Passport.js for strategy-based authentication and JWT for token management.

Why I built this?

I built SecureAuth to deepen my understanding of Passport.js, JWT, and secure email-based flows. It also served as a base project to implement real-world authentication logic and improve backend/frontend auth syncing.

What problem it solves?

SecureAuth provides a clean, secure, and ready-to-use authentication system. It removes the need to repeatedly build boilerplate auth logic and ensures a scalable structure with JWT and Passport.js for access control.

Key Features

  • User registration and login
  • JWT-based access and refresh tokens
  • Email verification with token
  • Forgot and reset password flow
  • Passport.js for strategy-based auth
  • Bcrypt for password hashing
  • Token expiration & refresh handling
  • Secure session persistence
  • Responsive UI built with Tailwind CSS
  • API tested using Postman
  • screenshot-0
    screenshot-1
    screenshot-2
    screenshot-3
    screenshot-4
    screenshot-5
    screenshot-6
    screenshot-7
    screenshot-8
    screenshot-9
    screenshot-10
    screenshot-11
    screenshot-12
    screenshot-13
    screenshot-14
    screenshot-15
    screenshot-16
    screenshot-17
    screenshot-18
    screenshot-19

    What I Learned / Challenges

    Learned how to integrate Passport.js with Express and JWT, and handle custom strategies. Managed secure storage of refresh tokens, handled edge cases like token expiration, and created a seamless client-server auth experience.