Token Based Authentication in Node.js using JWT (JSON Web Tokens) + MySQL Example

preview_player
Показать описание
Node js Token Based JWT Authentication using Express with MySQL Example

#nodejsjwtauthentication #nodejsexpressjwt #nodejssecurity
#nodejsexpresssecurity #jwtexpresssecurity

“How to implement a Nodejs JWT Authentication?” is one of the most common question in the development world? So in the tutorial, I will introduce details step by step how to do it with 100% running coding example by Express RestAPIs, JSON Web Token, BCryptjs, Sequelize and MySQL/PostgreSQL database.

0. JSON Web Token

JSON Web Token (JWT) defines a compact and self-contained way for securely transmitting information between parties as a JSON object.

Scenarios where JSON Web Tokens are useful:

Authorization: the most common scenario for using JWT. Single Sign On is a feature that widely uses JWT
Information Exchange: Because JWTs can be signed, JSON Web Tokens are a good way of securely transmitting information between parties.
JSON Web Tokens consist of 3 parts:

Header
Payload
Signature
JWT looks like Header-Base64-String.Payload-Base64-String.Signature-Base64-String

I. Workflow
We define 5 workflows as below:

1. SignUp Scenarios

- Verify UserName & Email
- If NOT Duplicate (UserName & Email), verify Roles are existed.
- If Roles are available, save User Info to database by Sequlieze ORM
- Othercase, Eror code will be returned

2. SignIn Scenarios

- Find User record in database by username
- If User is existed, check password is Valid or NOT
- If password is valid, create JWT then return JWT token back to client
- Othercase, Error code will be returned

3. Access User Content

- Verify JWT Token
- If token is valid, controller will load & return User Info back to client
- Othercase, Error Code will be returned

4. Access PM Content

- Verify JWT Token
- If token is valid, verify PM role.
- If User has Admin or PM role, controller will load & return Management Content to client.
- Othercase, Error code will be returned

5. Access Admin Content

- Verify JWT Token
- If token is valid, verify ADMIN role.
- If User has Admin role, controller will load & return Admin Content to client.
- Othercase, Error code will be returned

II. Video Guide Structure

0:00 - Review Overall Debug Processing: Nodejs Token Based JWT Authentication
0:35 - Start Review Article: Node js Token Based JWT Authentication using Express with MySQL Example
0:44 - SignUp Scenarios
0:52 - SignIn Scenarios
1:01 - Access User Content Scenarios
1:08 - Access PM Content Scenarios
1:15 - Access Admin Content Scenarios

1:24 - Download Sourcecode
1:33 - Install nodejs dependencies
1:38 - Import Nodejs project to Visual Studio Code
1:41 - Review Nodejs Project Structure
2:52 - Start Debug Nodejs project

--DEBUG--

3:01 - Start Debug SignUp Jack with USER_ROLE
4:09 - Start Debug SignUp Adam with PM_ROLE and USER_ROLE
5:23 - Start SignUp Thomas with ADMIN_ROLE

5:57 - Start Debug SignIn Jack with USER_ROLE to get JWT Authentication
6:46 - Jack access resources at /api/test/user successfully
7:48 - Jack try to access resouces at /api/test/pm - Fail because do NOT have permission
8:44 - Jack try to access resource at /api/test/admin - Fail because of Do NOT have permission
9:29 - Debug - SignIn with user Adam (having PM and User roles) to get JWT authentication
10:06 - Adam try to access resource at /api/test/pm - successfully.
11:04 - Adam try to access resource at /api/test/user - successfully
11:31 - Adam try to access resource at /api/test/admin - FAIL - Dont have permission
12:11 - try to login with Thomas user with ADMIN_ROLE
12:45 - Thomas try to access resource at /api/test/admin - successfully
13:45 - Thomas try to acces PM resouces - successfully
14:05 - try to access resouces with WRONG JWT - FAIL

III. Related post:

1. Angular 10 Spring Boot JWT Authentication Example – Angular 6, 8, 9, 10 + Spring Security + MySQL/PostgreSQL

2. Django RestAPIs Tutorial – Build Post/Get/Put/Delete request Examples to MySQL/PostgreSQL databases

3. Angular & Nodejs JWT Authentication fullstack Example | Angular 6, 7, 8, 9 – Express RestAPIs + JWT + BCryptjs + Sequelize + MySQL/PostgreSQL

Node js Token Based JWT Authentication using Express with MySQL Example

Рекомендации по теме
join shbcf.ru