Langsung ke konten utama

Otentikasi User Dengan JWT Dalam ExpressJS

 Otentikasi dilakukan untuk pengecekan agar tidak sembarang orang yang bisa mengakses fitur/request, melainkan hanya untuk orang-orang yg sudah terdaftar/login saja. Kalau dulu dalam pengecekan ini saya mengetahuinya dengan menggunakan session, dengan alur ketika user login, data login disimpan di session store, lalu ketika user hendak mengakses suatu fitur/meminta request, server akan mengecek apakah datanya ada di dalam session store atau tidak. Kalau tidak, request-nya akan ditolak sehingga mengharusnya dia login kembali.

Nah, JWT (JSON Web Token) juga mirip-mirip alur logikanya, hanya data yang digunakan untuk pengecekannya tidak menggunakan session, melainkan dengan token. Kalau digambarkan alurnya seperti ini:

Disini saya menggunakan Postman sebagai simulasi client agar saya bisa fokus ke bagian pemrograman servernya (step nomor 2, 3, 6, dan 7). Lalu diasumsikan sudah terkoneksi dengan database dan sudah ada beberapa data user (password dienkripsi dengan menggunakan bcrypt). Saya menggunakan ExpressJS, berikut tahapannya:

1. Membuat callback login/ signup, tidak lupa install package jsonwebtoken

2. Membuat function untuk otentikasi JWT

ketika client meminta request, client harus menyertakan tokennya untuk dicek, nanti token akan di kirim dalam bentuk objek :

authorization : Bearer {token yang berisi sekumpulan kode-kode}

kita hanya memerlukan tokennya saja, bearer tidak dibawa. Maka kodenya akan seperti ini : 

 lalu function otentikasi JWT (kalau saya namanya authenticateJWT) bisa kita panggil di semua callback sebagai middleware yang tugasnya seperti satpam yang akan selalu minta ID Card kita (token) setiap kita mau memasuki ruangan-ruangan khusus yang hanya bisa dimasuki orang-orang tertentu

kita coba simulasi menggunakan Postman, pastikan server sudah aktif. Simulasi diawali ketika user login :

lalu ketika user berhasil login, kemudian user ceritanya ingin mengakses menu Profile untuk melihat Profile pribadinya. Sebelum masuk ke modul Profile, server akan melakukan pengecekan terlebih dahulu. Karena ini simulasi, jadi token harus kita masukkan manual


 

Demikian simulasi otentikasi dengan menggunakan JWT dalam ExpressJS. Semoga bermanfaat, apakah ada yang tidak dipahami? Jika ada, silahkan layangkan di kolom komentar ^^

Komentar

Postingan populer dari blog ini

[SOLVED] #1558 - Column count of mysql.proc is wrong. Expected 21, found 20.

Photo by Clément H on Unsplash When i imported a database, i got problem with the error said  After i search the solution on the internet, i found a simple solution. If you are using Xampp with MariaDB server. Here what you need to do : 1. Open terminal, go to opt/lampp/bin directory 2. Do upgrade with mysql_upgrade command. Enter the password, wait untill the upgrade is done That's it ! it works for me, now i can import my database

Catatan Pribadi Syarah Alfiyah Al-Iraqi (Bait 47-56)

Photo by Sincerely Media on Unsplash Pengisi : Ustadz Miftah MENGAMBIL HADIST DARI KITAB MUTAMAD BAIT 47-49 Alasan mengapa kita harus mengambil hadist dari sumber yang mu’tamad adalah karena jika kita bersandar kepada kitab yang tidak terpecaya (belum di- muqoballah dengan yang asli) bagaikan bersandar pada rawi yang wujudnya tidak ada. Orang dulu sebelum adanya percetakan, kitab dijual secara tulis tangan atau membuka jasa penyalinan kitab. Atau ketika sekarang sudah ada percetakan, lalu asal mengambil kitab, yang penting ada Shahih Bukhari/Muslim nya. Tanpa memperhatikan percetakan, perhatian kepada naskah, i’rab, syakal, atau muqabalah kepada ushul . Maka untuk mencegah hal yang seperti ini, hendaklah kita mengambil dari kitab yang sudah di- muqobalah dengan ushul . Tidak boleh orang yang tidak pakar mengambil matan Shahih Bukhari atau Shahih yang lain untuk diamalkan langsung atau dijadikan hujjah . Karena dia tidak tahu mana yang amm & khas , mana yang mujmal ...