course-net
Search
Close this search box.

Home >

Apa Itu JWT (JSON Web Tokens)? Pengertian, Struktur & Cara Membuat Autentikasi Pengguna dengan JWT

Thursday, 13 June 2024 3:04 PM

Apa Itu JWT (JSON Web Tokens)? Pengertian, Struktur & Cara Membuat Autentikasi Pengguna dengan JWT

Berdasarkan pengalaman saya di bidang developer aplikasi dan website, cara membuat autentikasi pengguna dengan JWT (JSON Web Tokens) merupakan hal yang penting untuk dipelajari.

Pasalnya, JWT akan sangat membantu para pengembang dalam memaksimalkan ekosistem pengembangan aplikasi dan layanan suatu website.

Lantas, Apa Itu JWT (JSON Web Tokens)?

Apa Itu JWT (JSON Web Tokens)?

JWT (JSON Web Tokens) merupakan suatu open standard yang berfungsi sebagai alat transfer informasi terenkripsi dalam format JSON (JavaScript Object Notation) secara aman. JWT kerap digunakan untuk proses otentikasi dan otorisasi pada aplikasi dan layanan web.

Token yang menggunakan JSON berbentuk string memanjang yang terkesan random. Token tersebut nantinya memungkinkan adanya pengiriman data yang dapat diverifikasi oleh dua pihak atau lebih melalui kode atau kata kunci tertentu.

Seperti halnya penggunaan password, saat user melakukan login pada suatu akun maka server akan memberikan suatu token. Token ini akan tersimpan pada Local Storage atau Cookies Browser. Jika user ingin mengakses halaman tertentu, token inilah yang akan disertakan.

Dengan demikian, JWT sering dipakai dalam skenario otentikasi, terutama saat klien mengirimkan token ke server guna pemberian identitas. Server inilah yang kemudian akan memeriksa dan melakukan validasi token guna memastikan akses yang digunakan sesuai.

Struktur JWT (JSON Web Tokens)

Struktur dasar token JWT terdiri dari tiga bagian yang terdiri dari header, payload, serta verify signature. Ketiganya menyediakan informasi yang berbeda dan dipisahkan dengan tanda titik sehingga jika dituliskan lengkap akan menjadi sangat panjang dan cukup random.

1. Header

Bagian header pada JWT berisi berbagai metadata mengenai jenis token dan algoritma enkripsi yang dipakai dalam menghasilkan tanda tangan digital dalam token guna mendukung cara membuat autentikasi pengguna dengan JWT (JSON Web Tokens).

Umumnya, header berupa objek JSON yang terdiri dari dua properti utama seperti “alg” (algoritma) yang menunjukkan algoritma penandatanganan token, serta “typ” (type) yang menunjukkan tipe token “JWT”.

2. Payload

Bagian ini berisi claim yang berupa informasi yang akan disertakan dalam token. Suatu claim dapat berupa informasi pengguna seperti ID atau nama, metadata tambahan, hingga klaim lainnya. Data-data tersebut nantinya akan digunakan sebagai pengenal pengirim token.

Satu hal penting dalam menerapkan JWT, jangan pernah menyelipkan data yang bersifat confidental atau sensitif seperti kata sandi. Hal ini karena setiap developer dapat melihat isi atau data tersebut cukup dengan melakukan decoding.

3. Signature

Atau yang juga disebut Verify Signature, yang merupakan hasil enkripsi dari header dan payload menggunakan secret key yang hanya dapat diketahui oleh pembuat token. Signature inilah yang akan dipakai dalam menentukan apakah token tersebut asli dan kredibel.

Proses verifikasi dari signature akan memastikan bahwa token tidak berubah dari nilai aslinya sebelum diterima. Pasalnya, pembuatan header dan payload palsu pada dasarnya cukup mudah, sementara signature tidak mudah diakali lantaran memerlukan secret key tersebut.

Membuat Autentikasi Pengguna dengan JWT

JWT menjadi mekanisme yang kuat dalam mengelola otorisasi, otentikasi, dan keamanan pada aplikasi dan layanan website. Secara garis besar, berikut cara membuat autentikasi pengguna dengan JWT (JSON Web Tokens) yang dilakukan:

1. Pemilihan library atau framework

Untuk membuat suatu autentikasi pengguna menggunakan JWT, sangat penting untuk memilih framework atau library yang difungsikan sebagai pendukung guna melakukan pembuatan dan verifikasi token. Sebagai contoh, ‘jsonwebtoken’ untuk Node.js atau ‘PyJWT’ untuk Python.
Apabila Anda ingin menggunakan framework web tertentu seperti Express.js atau Django, diperlukan modul khusus yang terintegrasi dengan JWT. Dengan demikian, penerapan terkait penyimpanan data sensitif pada aplikasi dapat dilakukan secara maksimal.

2. Registrasi pengguna

Anda juga perlu memastikan jika pengguna sudah mendaftar dengan aplikasi atau website yang telah dirancang. Pasalnya, saat melakukan pendaftaran akan ada informasi seperti nama, alamat email, hingga kata sandi yang akan diatur oleh para pengguna tersebut.

Kredensial tersebut haruslah tersimpan dalam sistem atau basis data, termasuk kata sandi yang disimpan pada bentuk yang telah di-hash guna keamanan tambahan sekaligus mempermudah cara membuat autentikasi pengguna dengan JWT (JSON Web Tokens).

3. Langkah autentikasi pengguna

Apabila user mencoba untuk login pada aplikasi atau website tersebut, diperlukan pemeriksaan kredensial dengan yang tersimpan di dalam sistem. Adapun kredensial yang diperiksa seperti nama pengguna atau email beserta kata sandi seperti yang tersimpan di basis data.

Jika kredensial tersebut sudah benar dan cocok dengan basis data tersebut, langkah selanjutnya yakni membuat token JWT. Sebaliknya, jika kredensial tersebut tidak tepat, maka Anda tidak dapat menerbitkan token JWT untuk pengguna tersebut.

4. Pembuatan dan pengiriman token

Apabila langkah autentikasi berhasil, maka token JWT akan mulai dibuat dengan mengisikan informasi pengguna. Mulai dari nama atau ID pengguna, peran, hingga izinnya. Token tersebut juga dapat berisi informasi tambahan seperti waktu kadaluwarsa.

Setelah proses pembuatan token JWT berhasil, Anda dapat mengirimkan token tersebut ke pihak klien (user) sebagai respon yang menunjukkan jika permintaan otentikasi berhasil. Token inilah yang kemudian akan disimpan pada local storage atau cookies browser dari sisi user.

5. Proses verifikasi token

Tata cara membuat autentikasi pengguna dengan JWT (JSON Web Tokens) selanjutnya yakni dengan melakukan verifikasi berdasarkan permintaan user kepada server. Pasalnya, saat klien melakukan permintaan tersebut, token JWT ini akan selalu ada pada header permintaan.

Melalui hal tersebut, server akan melakukan verifikasi token guna memastikan apakah token tersebut valid dan tidak kadaluwarsa. Proses ini umumnya akan melibatkan pemeriksaan tanda tangan digital pada bagian Signature sekaligus memastikan masa aktif token tersebut.

6. Otorisasi akses dan manajemen token JWT

Setelah melakukan verifikasi token, Anda dapat menggunakan informasi yang ada untuk menentukan izin dan akses bagi pengguna. Dengan demikian, mereka dapat mengakses sumber data tertentu dengan melibatkan pemeriksaan peran yang dimiliki pada payload.

Pastikan juga Anda telah melakukan pengelolaan JWT secara benar, termasuk melakukan pembaharuan token jika sudah mendekati masa aktif berakhir. Anda juga perlu menghapus token yang sudah tidak digunakan kembali.

Meskipun semua langkah-langkah tersebut sudah dijalankan secara maksimal, perlu dipahami jika dalam proses otentikasi JWT tetap diperlukan secret key untuk memastikan token terjaga dengan baik dan tidak bocor ke pihak lain. Pastikan juga Anda menggunakan praktik keamanan seperti perlindungan data sensitif dan enkripsi kata sandi.

Itulah definisi dan cara membuat autentikasi pengguna dengan JWT (JSON Web Tokens) yang perlu para developer ketahui. Semoga bermanfaat terutama bagi Anda yang masih awam dengan konsep dan praktik dari JWT agar semakin expert di bidang pengembangan web.

Ingin memaksimalkan pengetahuan serta praktik mengenai JWT dan pengembangan website, belajar bersama Course-Net dengan mengikuti kursus full stack. Menggunakan kurikulum terbaru dan dibimbing oleh para pakar di bidangnya, Anda akan mempelajari seluk beluk pengembangan aplikasi web dan layanannya secara intens. Segera hubungi Expert Team kami untuk informasi lebih lanjut!

Artikel Terkait

Tags

Facebook
Twitter
LinkedIn
Pinterest
Tumblr
Telegram
WhatsApp
Email
Print

Subscribe Sekarang!

Dapatkan berita & artikel terbaru seputar IT Gratis!

Mau Berkarir Di Bidang Full Stack Web Developer ? Tapi Ga Punya Basic IT

Kursus di Course-Net, Anda akan didampingi langsung oleh Coach Praktisi Aktif kelas Dunia yang sudah berpengalaman lebih dari 5 tahun. 100.000++ ORANG DARI LEVEL MAHASISWA, STAFF, MANAGER, HINGGA BUSINESS OWNER TELAH BERGABUNG BERSAMA DI COURSE-NET INDONESIA DAN TERUS BERTAMBAH! Jadi Kapan giliran Anda ikut kursus di Course-Net?