Apa Itu JSON Web Token (JWT)? Fungsi dan Contohnya
DITULIS OLEH
Irhan Hisyam Dwi Nugroho
Dibuat pada 17 Jun 2026
Diubah pada 10 Jul 2026
67
Pernah mendengar istilah JWT saat belajar backend development, REST API, atau proses login pada aplikasi web? JWT atau JSON Web Token merupakan salah satu teknologi yang banyak digunakan untuk autentikasi dan pertukaran data secara aman.
JWT menjadi solusi populer dalam pengembangan aplikasi web modern karena proses autentikasinya lebih ringan dan efisien. Teknologi ini banyak digunakan pada aplikasi berbasis API, mobile app, hingga sistem microservices.
Lalu, apa itu JSON Web Token (JWT), apa fungsinya, dan bagaimana cara kerjanya? Yuk, simak penjelasan lengkap beserta contoh penggunaannya berikut ini!
Apa Itu JWT (JSON Web Token)?
JWT (JSON Web Token) adalah standar format token yang digunakan untuk mengirimkan informasi secara aman antara client dan server dalam bentuk objek JSON.
JWT biasanya digunakan untuk proses autentikasi dan otorisasi, seperti memastikan bahwa pengguna yang mengakses aplikasi telah berhasil login.
Setiap JWT terdiri dari tiga bagian utama, yaitu Header, Payload, dan Signature yang dikodekan menjadi satu token.
Berkat sifatnya yang ringan, aman, dan mudah digunakan, JWT menjadi salah satu metode autentikasi yang paling populer dalam pengembangan aplikasi web modern dan REST API.
Baca juga: Panduan Memilih Bootcamp Full Stack Developer yang Tepat
Struktur JWT
Sumber: Desain oleh Dibimbing
JWT terdiri dari tiga bagian utama, yaitu Header, Payload, dan Signature. Ketiga bagian tersebut dienkode menggunakan format Base64Url dan dipisahkan oleh tanda titik (.) dengan format header.payload.signature.
1. Header
Header berisi informasi dasar mengenai token, seperti tipe token dan algoritma kriptografi yang digunakan untuk membuat signature.
Bagian ini membantu server memahami cara token dibuat dan diverifikasi. Contoh isi Header dapat dilihat pada kode berikut:
{ "alg": "HS256", "typ": "JWT" } |
Keterangan:
- alg: Algoritma penandatanganan, seperti HS256 atau RS256.
- typ: Tipe token yang biasanya bernilai JWT.
2. Payload
Payload berisi claims atau data yang ingin dikirimkan di dalam token. Data tersebut dapat berupa ID pengguna, nama pengguna, role, maupun informasi waktu kedaluwarsa token.
Meskipun dapat dibaca oleh siapa saja yang memiliki token, payload tidak dienkripsi sehingga tidak boleh menyimpan data sensitif seperti password.
{ "sub": "1234567890", "name": "Budi Santoso", "iat": 1516239022 } |
Jenis claims dalam JWT meliputi:
- Registered Claims: Klaim standar seperti iss, exp, dan sub.
- Public Claims: Klaim yang dapat dibuat sesuai kebutuhan aplikasi.
- Private Claims: Klaim khusus yang digunakan oleh pihak-pihak tertentu.
3. Signature
Signature berfungsi untuk memastikan bahwa isi JWT tidak diubah oleh pihak yang tidak berwenang. Bagian ini dibuat dengan menggabungkan Header dan Payload yang telah dienkode, kemudian diproses menggunakan secret key dan algoritma tertentu.
Jika ada perubahan pada token, maka signature tidak akan cocok dan JWT dianggap tidak valid.
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret_key ) |
Dengan adanya Signature, server dapat memverifikasi keaslian dan integritas token sebelum memberikan akses kepada pengguna.
Baca juga: Rekomendasi Kursus Full Stack Developer: Manfaat & Benefit
Cara Kerja JWT
JWT bekerja dengan cara membuat, mengirim, dan memverifikasi token untuk memastikan identitas pengguna. Berikut adalah tahapan sederhana cara kerja JWT dalam proses autentikasi.
1. Pengguna Login dan Server Membuat JWT
Pengguna memasukkan username dan password ke aplikasi, lalu server akan memeriksa apakah data tersebut sesuai dengan informasi yang tersimpan di sistem.
Jika login berhasil, server membuat JWT yang berisi informasi pengguna dan hak akses tertentu. Token tersebut kemudian dikirim kembali ke client sebagai bukti autentikasi.
2. Client Menyimpan dan Mengirim JWT
Setelah menerima JWT dari server, client akan menyimpan token tersebut di browser, session storage, local storage, atau cookie sesuai kebutuhan aplikasi.
Ketika pengguna mengakses fitur yang membutuhkan autentikasi, client akan mengirimkan JWT bersama request ke server. Biasanya, token dikirim melalui Authorization Header dengan format Bearer Token.
3. Server Memverifikasi JWT
Server akan memeriksa signature, isi payload, dan masa berlaku token untuk memastikan JWT masih valid.
Jika token valid, server akan memberikan akses ke resource yang diminta pengguna. Namun, jika token tidak valid, sudah dimodifikasi, atau kedaluwarsa, server akan menolak akses dan meminta pengguna login kembali.
Baca juga: Panduan Belajar Full Stack Developer dengan Mudah
Kelebihan dan Kekurangan JWT
JWT menawarkan berbagai keuntungan dalam proses autentikasi aplikasi modern, tetapi juga memiliki beberapa keterbatasan yang perlu diperhatikan.
Oleh karena itu, developer perlu memahami kelebihan dan kekurangan JWT sebelum mengimplementasikannya dalam sebuah aplikasi.
1. Kelebihan JWT
JWT menjadi salah satu metode autentikasi yang populer karena menawarkan berbagai manfaat dalam pengembangan aplikasi web modern.
- Stateless Authentication: Server tidak perlu menyimpan data sesi pengguna sehingga penggunaan sumber daya menjadi lebih efisien.
- Mudah Digunakan pada API: JWT sangat cocok digunakan pada REST API karena token dapat dikirim melalui setiap request dengan mudah.
- Mendukung Arsitektur Modern: JWT banyak digunakan pada aplikasi mobile, Single Page Application (SPA), dan microservices.
2. Kekurangan JWT
Meskipun memiliki banyak kelebihan, JWT juga memiliki beberapa keterbatasan yang perlu diperhatikan.
- Sulit Melakukan Token Revocation: Token yang sudah diterbitkan biasanya tetap valid hingga masa berlakunya habis.
- Risiko Jika Token Bocor: Pihak yang memperoleh token valid dapat menggunakannya untuk mengakses sistem selama token belum kedaluwarsa.
- Ukuran Token Bisa Membesar: JWT dapat menjadi lebih besar jika payload menyimpan terlalu banyak informasi.
Baca juga: Full Stack Developer Career Path: Level, Skill, dan Gaji
JWT vs Session Authentication
JWT dan Session Authentication merupakan dua metode yang sering digunakan untuk mengelola autentikasi pengguna dalam aplikasi web.
Meskipun memiliki tujuan yang sama, keduanya memiliki cara kerja dan karakteristik yang berbeda.
1. Penyimpanan Data Autentikasi
Pada Session Authentication, data sesi pengguna disimpan di server dan setiap pengguna akan memiliki session ID yang unik.
Sebaliknya, JWT menyimpan informasi autentikasi di dalam token yang disimpan oleh client. Karena itu, JWT dikenal sebagai metode autentikasi yang bersifat stateless.
2. Skalabilitas Sistem
Session Authentication dapat memerlukan sumber daya server yang lebih besar karena setiap sesi pengguna harus disimpan dan dikelola.
Sementara itu, JWT tidak memerlukan penyimpanan sesi di server sehingga lebih mudah digunakan pada aplikasi dengan banyak pengguna. Oleh karena itu, JWT sering dipilih untuk aplikasi modern yang membutuhkan skalabilitas tinggi.
3. Keamanan dan Penggunaan
Session Authentication umumnya lebih mudah dikendalikan karena server dapat menghapus sesi pengguna kapan saja.
Di sisi lain, JWT lebih fleksibel untuk REST API, aplikasi mobile, dan arsitektur microservices karena token dapat digunakan di berbagai layanan.
Pemilihan antara JWT dan Session Authentication sebaiknya disesuaikan dengan kebutuhan serta arsitektur aplikasi yang dikembangkan.
Ingin Menjadi Full Stack Web Developer?
JWT hanyalah salah satu teknologi yang digunakan dalam pengembangan aplikasi modern. Untuk menjadi Full Stack Web Developer, kamu juga perlu menguasai frontend, backend, database, dan API.
Yuk, ikuti Bootcamp Full Stack Web Development di Dibimbing! Di sini, kamu akan belajar HTML, CSS, JavaScript, React, Node.js, Express.js, MongoDB, hingga membangun REST API dan aplikasi web modern yang sesuai kebutuhan industri saat ini.
Dengan dukungan lebih dari 1.100+ hiring partner dan tingkat keberhasilan alumni mencapai 96%, peluangmu untuk berkarier di bidang teknologi menjadi semakin terbuka lebar.
Jadi, tunggu apa lagi? Konsultasikan kebutuhan belajarmu sekarang Disini dan bergabung bersama Bootcamp Full Stack Web Development di Dibimbing. Mulai perjalananmu menjadi Web Developer profesional bersama #BimbingSampeJadi!
Kategori:
Penulis
Irhan Hisyam Dwi Nugroho is an SEO Specialist and Content Writer with 4 years of experience in optimizing websites and writing relevant content for various brands and industries. Currently, I also work as a Content Writer at Dibimbing.id and actively share content about technology, SEO, and digital marketing through various platforms.
