Authentication JWT Node.js
Authentication JWT Node.js – Pada artikel kali ini kita akan belajar membuat authentication menggunakan JWT (JSON Web Token) pada Node.js.
Jika anda ingin menggunakan Lumen 7 anda bisa melihat pada artikel sebelumnya disini:
Authentication JWT Lumen 7
Authentication JWT Node.js
Create Project
Buat project baru dengan nama nodejs-auth-jwt.
Dari command prompt ketikkan perintah berikut:
1 2 3 4 5 |
cd H:\sourcecode mkdir nodejs-auth-jwt cd nodejs-auth-jwt |
Selanjutnya kita inisialisasi NPM menggunakan perintah berikut:
1 2 3 |
npm init |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package name: (nodejs-auth-jwt) --> Enter version: (1.0.0) --> Enter description: Authentication JWT Node.js --> Enter entry point: (index.js) server.js --> Enter test command: --> Enter git repository: --> Enter keywords: node.js, express, jwt, authentication, mysql --> Enter author: cacan --> Enter license: (ISC) --> Enter About to write to H:\sourcedev\nodejs-auth-jwt\package.json: { "name": "nodejs-auth-jwt", "version": "1.0.0", "description": "Authentication JWT Node.js", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "node.js", "express", "jwt", "authentication", "mysql" ], "author": "cacan", "license": "ISC" } Is this ok? (yes) --> Enter |
Install Dependency
Dari command prompt ketikkan perintah berikut:
1 2 3 |
npm install express sequelize mysql2 body-parser cors jsonwebtoken bcryptjs --save |
Database
Buat database baru dengan nama nodejs_auth_jwt.
Dari command prompt ketikkan perintah berikut:
1 2 3 4 |
mysql -uroot -p CREATE DATABASE nodejs_auth_jwt; |
Create Table
Buat table baru dengan nama users.
Dari command prompt ketikkan perintah berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
USE nodejs_auth_jwt; CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `createdAt` datetime NOT NULL, `updatedAt` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; |
Configure Database
Buat folder baru dengan nama app pada direktori root project.
Config
Kemudian buat lagi folder baru dengan nama config pada direktori app.
db.config.js
Buat file baru dengan nama db.config.js pada direktori app/config kemudian ketikkan script berikut:
Simpan file db.config.js
auth.config.js
Buat file baru dengan nama auth.config.js pada direktori app/config kemudian ketikkan script berikut:
Simpan file auth.config.js
Models
Buat folder baru dengan nama models pada direktori app.
user.model.js
Buat file baru dengan nama user.model.js pada direktori app/models kemudian ketikkan script berikut:
Simpan file user.model.js
index.js
Buat file baru dengan nama index.js pada direktori app/models kemudian ketikkan script berikut:
Simpan file index.js
Controllers
Buat folder baru dengan nama controllers pada direktori app.
auth.controller.js
Buat file baru dengan nama auth.controller.js pada direktori app/controllers kemudian ketikkan script berikut:
Simpan file auth.controller.js
user.controller.js
Buat file baru dengan nama user.controller.js pada direktori app/controllers kemudian ketikkan script berikut:
Simpan file user.controller.js
Middleware
Buat folder baru dengan nama middleware pada direktori app.
verifyRegister.js
Buat file baru dengan nama verifyRegister.js pada direktori app/middleware kemudian ketikkan script berikut:
Simpan file verifyRegister.js
authJwt.js
Buat file baru dengan nama authJwt.js pada direktori app/middleware kemudian ketikkan script berikut:
Simpan file authJwt.js
index.js
Buat file baru dengan nama index.js pada direktori app/middleware kemudian ketikkan script berikut:
Simpan file index.js
Routes
Buat folder baru dengan nama routes pada direktori app.
auth.routes.js
Buat file baru dengan nama auth.routes.js pada direktori app/routes kemudian ketikkan script berikut:
Simpan file auth.routes.js
user.routes.js
Buat file baru dengan nama user.routes.js pada direktori app/routes kemudian ketikkan script berikut:
Simpan file user.routes.js
Setup Express Web Server
Buat file baru dengan nama server.js pada direktori root project kemudian ketikkan script berikut:
Simpan file server.js
Testing Authentication JWT Node.js
Dari direktori project jalankan Node.js menggunakan perintah berikut:
1 2 3 |
node server.js |
1 2 3 |
Server is running on port 9090. |
Testing via Postman
Selanjutnya kita akan testing menggunakan Postman.
Register
Pertama-tama kita daftarkan user baru terlebih dahulu agar kita bisa melakukan login.
Buka postman lalu pilih method POST kemudian ketikkkan URL http://localhost:9090/api/auth/register
Kemudian pilih tab Body. Lalu pada radiobox pilih raw dan typenya ganti menjadi JSON. Selanjutnya inputkan data registrasinya seperti berikut:
1 2 3 4 5 6 7 |
{ "username": "cacan", "email": "cacan@email.com", "password": "rahasia" } |

Login
Setelah registrasi berhasil selanjutnya kita coba untuk login dengan user yang sudah kita registrasikan tersebut.
Buka postman lalu pilih method POST kemudian ketikkkan URL http://localhost:9090/api/auth/login
Kemudian pilih tab Body. Lalu pada radiobox pilih raw dan typenya ganti menjadi JSON. Selanjutnya inputkan data email dan password untuk login seperti berikut:
1 2 3 4 5 6 |
{ "username": "cacan", "password": "rahasia" } |

Jika login berhasil, maka kita akan mendapatkan access token.
Untuk Front End anda bisa menggunakan contoh autentication yang sudah pernah kita buat pada artikel sebelumnya disini:
Sampai disini kita sudah berhasil membuat authentication JSON Web Token menggunakan Node.js. Pada artikel selanjutnya kita akan bahas Node.js lebih jauh lagi.
Semoga bermanfaat.
Source Code bisa anda download disini: