Skip to content

kedar09/nodejs-mysql-jwt-authentication

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodejs-mysql-jwt-authentication

Sign-Up/Sign-In using Node.js, MySql and JWT(JSON Web Token).

Software prerequisites:

  1. Node.js
  2. Joi
  3. Mysql
  4. JSON Web Token
  5. Nodemailer
  6. Swagger

Installation

This is a Node.js module available through the npm registry.

Before installing, download and install Node.js. Node.js 0.10 or higher is required.

If this is a brand new project, make sure to create a package.json first with the npm init command.

Installation is done using the npm install command:

$ npm install express

Quick Start

The quickest way to get started with express is to utilize the executable express(1) to generate an application as shown below:

Install the executable. The executable's major version will match Express's:

$ npm install -g express-generator@4

Create the app:

$ express nodejs-mysql-jwt-authentication && cd nodejs-mysql-jwt-authentication

Install dependencies:

$ npm install

Start the server:

$ npm start

View the website at: http://localhost:3000

Joi

Joi is an object schema description language and validator for JavaScript objects. Joi allows you to create blueprints or schemas for JavaScript objects to ensure validation of key information. To get started with joi, you must first install and add it as a dependency to your project:

Installation is done using the npm install command:

$ npm install @hapi/joi

joi-date extensions for advance date rules.

$ npm install @hapi/joi-date

MySql

This is a node.js driver for mysql.

Installation is done using the npm install command:

$ npm install mysql

JSON Web Token | JWT

JSON Web Token is a compact claims representation format intended for space constrained environments such as HTTP Authorization headers and URI query parameters. A JSON web token(JWT) is JSON Object which is used to securely transfer information over the web (between two parties).

$ npm install jsonwebtoken

Swagger

Swagger UI Express module allows you to serve auto-generated swagger-ui generated API docs from express, based on a swagger.json file. The result is living documentation for your API hosted from your API server via a route.

$ npm install swagger-ui-express swagger-jsdoc

NodeMailer

Nodemailer is a module for Node.js applications to allow easy as cake email sending. Send mail through Gmail click here

$ npm install nodemailer

Folder Structure

nodejs-mysql-jwt-authentication
|
|
|____app
|    |____AuthComponent
|    |    |____auth.controller.js
|    |    |____auth.model.js
|    |    |____auth.utility.js
|    |    |____auth.validator.js
|    |
|    |____UserComponent
|         |____user.controller.js
|      	  |____user.model.js
|         |____user.utility.js
|         |____user.validator.js
|
|
|____bin
|    |____www
|
|
|____config
|    |____database.js
|    |____JWTPrivateKey.js
|    |____nodemailerDetails.js
|
|
|____node_modules 
|
|
|____public
|    |____stylesheets
|    |    |__style.css
|    |
|    |____index.html
|
|
|____routes
|    |____auth.js
|    |____users.js
|
|
|____app.js
|
|
|____package.json

Creating database and table

create database TEST;

use TEST;

create table users(
    userId int primary key auto_increment,
    email varchar(30) unique,
    password varchar(250),
    displayName varchar(50),
    phoneNumber bigint
);

About

Sign-Up/Sign-In using Node.js, MySql and JWT(JSON Web Token).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages