Tutorial JSON Web Token (JWT)

Pada tulisan kali ini saya hendak mendokumentasikan tutorial JWT yang baru saya pahami jajaja. Sebagai Pengenalan, JWT (JSON Web Token) adalah standar terbuka berbasis JSON untuk membuat token akses yang menegaskan sejumlah klaim. Misalnya, token del servidor dapat menghasilkan yang memiliki klaim “masuk sebagai admin” dan memberikannya kepada klien. Klien kemudian dapat menggunakan token itu untuk membuktikan bahwa itu masuk sebagai admin.

Dalam lingkungan REST sendiri, biasanya kita menggunakan apátridas apátridas (baca: sesión tidak pakai) untuk menangani Solicitud de autorización dari sisi klien.

Bagaimana struktur JWT? Struktur JWT terdiri dari:

  • Encabezamiento
  • Carga útil
  • Firma

Dengan susunan header.payload.signature . Untuk info selengkapnya bisa dong dibaca di dokumentasi https://jwt.io/introduction/.

Tutorial berikut dibuat seminim mungkin dan berjalan menggunakan express.js.

Alur Kerja

  1. Iniciar sesión
  2. Jika otentikasi behasil, token buat jwt dan kirim sebagai carga útil
  3. Solicitar token de servidor dengan mengirim
  4. Jika token válido, solicite berhasil.

Sederhana bukan? mari lanjutkan ke tahap berikutnya.

Membuat middleware untuk menangani tugas JWT

Di dalam middleware ini nantinya ada dua método yaitu método untuk meng-generate token dan método untuk mem-validasi token. Sebelum itu instalar dulu jwt packagenya dengan perintah dibawah ini.

  npm install jsonwebtoken 

Tuliskan kode berikut:

Penjelasan:
Método createJWTToken(sessionData, expiredTime) berperan untuk meng- ginerate token jwt. Seperti penjelasan sebelumnya, token jwt memiliki 3 bagian (untuk lebih jelasnya dimohon baca dokumentasi terlebih dahulu). Parámetro sessionData merupakan bagian payload y ang berisikan data login yang perlu digunakan untuk identifikasi usuario lebih spesifik ketika melakukan request ke server, misalnya role, username, dll.

Método verifyJWTToken(token) memiliki fungsi untuk token mem-validasi yang dikirim dari sisi klien. Token Ketika válido, método maka ini akan memberikan hasil decodificación token tersebut, sehingga kita bisa memvalidasi lebih lanjut usuario apakah kredibel untuk mengakses suatu endpoint.

Controlador Membuat

Controlador berikut akan berperan sebagai middleware rutas dalam, atau kamu boleh menganggapnya middleware juga, terserah saja.

Penjelasan:
Bisa dilihat, untuk request yang datang, controlador tersebut akan meminta encabezado dengan key Authorization dimana token jwt sebagai valuenya. Jika token válido maka akan didecode dan disimpan dalam request.user untuk diteruskan dalam action berikutnya. Sedangkan jika token tidak válido, solicitud akan terhenti dan memberikan error de resultado 401 no autorizado .

Controlador de inicio de sesión falso de Membuat (uhui)

Penjelasan:
Controlador de inicio de sesión token menghasilkan JWT token dengan payload

{username:”mali”, role:”admin”}

Rutas integrasi dengan express.js

Penjelasan:
Terdapat 2 rutas post dan get, dimana route pertama untuk login dan route kedua untuk testing.

Jadi seperti itu yang dapat saya sampaikan, tidak banyak dan kurang lengkap. Wkkk selamat menjelajah.