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
Posting Komentar