Generate dan Verify JWT di ExpressJS dengan PassportJS

Muhammad Zaky
Node Js Indonesia
Published in
2 min readAug 28, 2019

kebetulan gua lagi implement JWT menggunakan PassportJS di salah satu projek yang gua kerjakan, jadi daripada hasil researchnya sia — sia mending gua buat jadi tulisan.

Step 1 : Npm init dan install package

pertama silahkan buat projek nodeJS dahulu, kemudian npm init untuk membuat file package.json untuk menginisialisasi projek.

kemudian install package — package yang akan kita gunakan

  • body-parser
  • express
  • jsonwebtoken (untuk generate jwt)
  • passport (untuk verify token)
  • passport-jwt (untuk varify token dengan stragetegi jwt)
install package passport, express dll

dan ini isi package.json punya gua

package.json

Step 2 : Generate JWT

di contoh tutorial gua bakal langsung generate sebuah JWT dari sebuah array yang kita buat manual, tetapi sebenarnya pada implement data yang di generate menjadi JWT itu biasanya berasal dari database, atau dari hasil return function login user, di lain waktu gua akan share cara membuat loginnya juga.

sekarang buat file index.js, di root folder projek kita, kemudian ketik syntak berikut, dipaste juga boleh sih, tapi gua lebih prever di ketik daripada di paste biar nempel di kepala.

untuk penjelasan setiap codingan bisa di baca di comment yang ada di setiap baris. sederhananya kita punya data email user dummy, kemudian user akan login dengan mengirim parameter email, jika email sama dengan dengan email tersebut maka user di anggap berhasil login dan akan di berikan token dengan secret key ‘node-js-indonesia’. secret key ini juga di gunakan nanti verify token menggunakan passport-jwt.

sekarang kita tes menggunakan email yang tidak sesuai, agar mendapatkan error.

error email salah

sekarang kita coba menggunakan email yang benar untuk mendapatkan token JWT.

tadaaaa… kita berhasil mendapatkan token JWT. selanjutnya kita akan menggunakan passport-jwt untuk verify token tersebut. jika sistem gagal verify token tersebut maka akan ngereturn value false.

Step 3 : Verify JWT

--

--