A Blog full of Web Projects

A Blog full of Web Projects

Node Express Membership system + Email notification - JWT and Refresh Token

17-August-2024

Node Express Role based Membership system with Email Verification and Forgot Password using Sequelize ORM towards a MySQL DB - Authentication by JWT + Refresh Tokens

Note: Due to the resource limitations of the Microsoft Azure Free App Service Plan, the initial load time will be up to 30 seconds!

Volta was used for Node Version Management switching between Node versions

Functionality of the Web App

  • JWT authentication with Refresh Tokens
  • Refresh token rotation
  • Revoked token reuse detection
  • Email sign up and verification
  • Forgot password and reset password functionality
  • Role based authorization with two roles "User" and "Admin"
  • CRUD Account management routes with role based access control

Tech used for building the Web App

  • Node.js
  • Sequelize used to implement the ORM at the Web API
  • The Node.js Web API is hosted at Azure App Service with the Free App Service Plan
  • The React Client is hosted at a traditional Webhotel
  • MySQL as the Database for both Dev + Prod
  • CORS Policy implemented by Node.js and at Azure
  • JWT Token for access secure routes
  • Refresh Token by HTTP only Cookie to generate new JWT Tokens
A Blog made with Gatsby React and GraphQL