CodeKitHub
Bahasa Indonesia
Alat Enkode

JWT Decoder

Tempel JWT (JSON Web Token) apa pun dan lihat header serta payload-nya di-decode dan diformat secara instan — termasuk apakah token sudah kedaluwarsa. Semuanya terjadi di browser Anda: token tidak pernah dikirim ke mana pun, dan tidak ada verifikasi signature yang dilakukan (alat ini hanya melakukan decode, bukan memeriksa keaslian token).

Header

Payload

Decoded entirely in your browser — no signature verification, and the token is never sent anywhere.

Apa Itu Alat Ini?

JWT (JSON Web Token) adalah string ringkas dan URL-safe yang digunakan untuk membawa claim antara dua pihak — paling umum sebagai token autentikasi setelah login. Terdiri dari tiga bagian yang dipisahkan titik: header (algoritma dan tipe token), payload (claim sebenarnya — ID pengguna, role, waktu kedaluwarsa, dsb.), dan signature (digunakan server untuk memverifikasi bahwa token tidak diubah).

Header dan payload hanyalah JSON yang di-encode dengan Base64URL — bukan dienkripsi — sehingga siapa pun bisa men-decode dan membacanya tanpa secret key. Hanya signature yang memerlukan secret untuk diverifikasi. Itulah persis yang dilakukan alat ini: men-decode bagian yang bisa dibaca dan menampilkannya sebagai JSON terformat, tanpa mencoba memverifikasi signature.

Mengapa Menggunakannya?

  • Header dan payload langsung terbaca, diformat sebagai JSON — tidak perlu lagi memecah string secara manual dan men-decode Base64 sendiri.
  • Pemeriksaan kedaluwarsa otomatis: jika payload memiliki claim "exp", nilainya dikonversi menjadi tanggal yang mudah dibaca dan ditandai sebagai kedaluwarsa atau masih valid.
  • Salin header atau payload secara terpisah dengan satu klik.
  • 100% di sisi klien — token di-decode secara lokal dan tidak pernah ditransmisikan, aman digunakan bahkan dengan token dari sistem produksi.
  • Tidak ada verifikasi signature yang dilakukan atau diklaim — ini adalah alat debugging/inspeksi, bukan validator.

Cara Menggunakan

  1. Tempel JWT Anda ke kotak (string lengkap, termasuk ketiga bagian yang dipisahkan titik).
  2. Header dan payload akan di-decode otomatis saat Anda mengetik.
  3. Periksa baris kedaluwarsa jika token memiliki claim "exp" — bagian ini menampilkan tanggal pastinya dan apakah token sudah kedaluwarsa.
  4. Klik "Copy" di bawah salah satu kotak untuk menyalin bagian tersebut sebagai JSON.

Contoh

Input

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0IiwibmFtZSI6IkpvaG4gRG9lIiwiZXhwIjoxNzAwMDAwMDAwfQ.dQw4w9WgXcQ

Output

Header: {"alg": "HS256"}
Payload: {"sub": "1234", "name": "John Doe", "exp": 1700000000}

Signature (bagian ketiga) tidak pernah di-decode atau diperiksa — itu adalah hash opaque yang digunakan di sisi server untuk memverifikasi keaslian.

Tips praktis

  • Men-debug error "invalid token": decode payload terlebih dahulu untuk memeriksa claim "exp" — token kedaluwarsa adalah penyebab paling umum, dan tidak selalu jelas hanya dari pesan error.
  • Memeriksa isi token API pihak ketiga: banyak API mengembalikan JWT yang terlihat opaque sebagai access token — decode di sini untuk melihat scope, ID pengguna, atau waktu kedaluwarsa yang sebenarnya diterima integrasi Anda.
  • Jangan pernah beranggapan JWT terenkripsi: jika Anda melihat data sensitif (email, ID internal) di payload yang di-decode selama pengembangan, itu adalah tanda untuk memindahkan data tersebut ke sisi server daripada mengandalkan klien untuk tidak membacanya.

Claim umum yang akan Anda temui di payload

ClaimArti
subSubject — biasanya ID pengguna yang direpresentasikan token
expWaktu kedaluwarsa (Unix timestamp) — token tidak valid setelah waktu ini
iatIssued at — kapan token dibuat
issIssuer — layanan/server mana yang menerbitkan token
audAudience — layanan mana yang menjadi tujuan token
role / roles / scopeClaim kustom — izin atau role yang diberikan kepada pengguna (bukan bagian dari standar JWT, tetapi sangat umum digunakan)

Pertanyaan yang Sering Diajukan

Apakah alat ini memverifikasi signature JWT?

Tidak. Memverifikasi signature memerlukan secret key atau public key yang digunakan untuk menandatangani token, yang hanya dimiliki server penerbit. Alat ini hanya men-decode header dan payload — bagian yang bisa dibaca manusia — sehingga Anda bisa memeriksa claim dan waktu kedaluwarsa tanpa memerlukan key apa pun.

Apakah aman menempelkan JWT produksi yang sebenarnya di sini?

Proses decode sepenuhnya terjadi di browser Anda melalui JavaScript — token tidak pernah dikirim ke server mana pun, termasuk milik kami. Meski begitu, perlakukan token seperti password: jangan tempelkan ke alat yang tidak Anda percaya, dan hindari membagikan screenshot token yang sudah di-decode berisi claim sensitif.

Mengapa siapa pun bisa membaca payload JWT saya tanpa password?

Memang sengaja dirancang begitu — header dan payload JWT di-encode dengan Base64URL, bukan dienkripsi. Encoding bukan keamanan; itu hanya membuat JSON aman untuk dikirim melalui URL. Jangan pernah menaruh data rahasia (password, nomor kartu kredit) langsung di payload JWT — anggap saja siapa pun yang memiliki token bisa membaca isinya.

Apa arti claim "exp" dan mengapa penting?

"exp" adalah waktu kedaluwarsa token, dalam bentuk Unix timestamp (detik sejak 1970). Server akan menolak JWT setelah waktu ini terlewati, memaksa klien untuk login ulang. Alat ini mengonversinya menjadi tanggal yang mudah dibaca dan menandai apakah sudah kedaluwarsa, yang berguna untuk men-debug masalah "mengapa sesi saya keluar sendiri".

Token saya menunjukkan error parse JSON — kenapa?

Kemungkinan string bukan JWT yang valid (harus tepat tiga bagian dipisahkan titik), atau terpotong atau berubah — penyebab umum adalah token yang tidak sengaja terpecah ke beberapa baris atau kehilangan karakter di akhir saat disalin.

Alat Terkait