Sign-Up/Sign-In using Node.js, MySql and JWT(JSON Web Token).
Software prerequisites:
- Node.js
- Joi
- Mysql
- JSON Web Token
- Nodemailer
- Swagger
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 expressThe 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@4Create the app:
$ express nodejs-mysql-jwt-authentication && cd nodejs-mysql-jwt-authenticationInstall dependencies:
$ npm installStart the server:
$ npm startView the website at: http://localhost:3000
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/joijoi-date extensions for advance date rules.
$ npm install @hapi/joi-dateThis is a node.js driver for mysql.
Installation is done using the npm install command:
$ npm install mysqlJSON 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 jsonwebtokenSwagger 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-jsdocNodemailer is a module for Node.js applications to allow easy as cake email sending. Send mail through Gmail click here
$ npm install nodemailernodejs-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
);