Membuat Restfull Api Menggunakan Expressjs, Orm Sequelize dan Mysql Part 5: Logout and Verify Token Blacklist Using Middleware

Firman
JavaScript Indonesia Community
4 min readMar 7, 2021
Image from Toptal article

Halo teman-teman tak terasa sudah masuk kepada sesi terakhir, mari kita lanjut dari sesi sebelumnya tentang restfullapi expressjs sequelize dan mysql.

Pertama — Siapkan dulu satu tabel untuk menyimpan data-data token yang di blacklist dengan menggenerate nya menggunakan sequelize-cli, masuk ke terminal dan ketikan perintah sebagai berikut :

$ npx sequelize-cli model:generate --name Blacklist --attributes token:string

Lalu kita migrasi tabel nya dengan cara mengetikan perintah sebagai berikut :

$ npx sequelize-cli db:migrate
sukses migrasi tabel

Langkah selanjutnya kita buat satu url logout, ubah file authController.js dan tambahkan satu function logout di folder controllers menjadi seperti berikut ini :

authController.js

Dari script logout diatas ketika url logout di hit maka akan ada aksi untuk menyimpan data token user tersebut, walaupun token user tersebut masih aktif karena expire nya masih lama, akan tetapi nanti jika user tersebut login kembali maka dia akan punya token baru, dan token lama masih bisa digunakan dikarenakan belum expired, oleh karena itu kita memverifikasi terleih dahulu token tersebut masuk dalam daftar blacklist atau tidak.

Lanjut kita ubah file verify.js dan ubah function verifyToken di folder middleware menjadi seperti ini :

verify.js

Script di atas adalah pengecekan apakah token yang kita kirim itu masuk ke daftar blacklist atau tidak.

Langkah terakhir kita ubah file authRoutes.js di folder routes menjadi seperti ini :

authRoutes.js

Langkah terkahir kita testing, ada beberapa skenario yang akan kita testing diantaranya sebagai berikut :

validasi jika logout tanpa token
logout sukses
  • Akses url employe dengan token yang masuk ke daftar blacklist — testing selanjutnya yaitu hit endpoint employee http://localhost:3000/api/v1/employe dengan token yang sudah kita logout tadi, sehingga muncul pesan seperti pada gambar dibawah ini :
token blacklist
  • Akses url employe dengan token baru login lagi — hit kembali endpoint employee http://localhost:3000/api/v1/employe dengan token yang baru, kita login kembali lalu pastekan token baru hasil login tadi, sehingga muncul pesan seperti pada gambar dibawah ini :
Token tervalidasi

Sofar sampai saat ini mudah-mudahan bisa dipahami hehe 😃, teman-teman bisa memodifikasi semua script nya sesuai kebutuhan teman-teman ini hanya contoh sederhana saja dan sebagai contoh gambaran cara kerja blacklist token.

Sebagai bahan pembalajaran mungkin teman-teman bisa membuat table baru dan endpoint baru mengikuti langkah-langkah yang sudah saya jelaskan sebelumnya, untuk mengasah kemmapuan teman-teman

List tutorial :

Semoga bermanfaat bagi teman-teman, untuk source code nya ada dibawah ini, kita lanjut nanti dengan tutorial-tutorial lain atau teman-teman bisa request untuk membuat tutorial apa hehehe silahkan request tulis di kolom komentar.

--

--