Dekode JSON Web Token
JSON Web Token (JWT) adalah string ringkas yang digunakan untuk meneruskan informasi identitas dan izin antar sistem — paling sering sebagai header Authorization: Bearer setelah login. JWT terlihat seperti teks acak, tetapi sebenarnya terdiri dari tiga bagian yang dienkode dengan Base64URL: header, payload berisi klaim, dan signature. Dekoder JWT ini memisahkan token, mendekode dua bagian pertama menjadi JSON yang mudah dibaca, dan menjelaskan klaim-klaim penting di dalamnya. Proses dekode dan verifikasi dilakukan secara lokal, sehingga token Anda tidak pernah dikirim ke mana pun.
Fitur
- Header dan payload didekode dan dirapikan formatnya, masing-masing dilengkapi tombol salin.
- Penjelasan klaim waktu:
iat,nbf,exp, danauth_timedikonversi dari detik epoch menjadi tanggal sesuai zona waktu Anda. - Cek masa berlaku yang memberi tahu Anda secara langsung apakah token sudah kedaluwarsa atau belum aktif.
- Verifikasi signature HMAC untuk HS256, HS384, dan HS512 menggunakan Web Crypto API pada browser Anda.
- Bekerja offline setelah halaman dimuat; tidak ada data yang dikirim ke server mana pun.
Kapan harus menggunakannya
Debugging autentikasi. Saat permintaan gagal dengan error 401 Unauthorized, dekode token untuk memeriksa apakah token sudah kedaluwarsa, diterbitkan untuk audiens yang tepat (aud), atau memiliki peran (role) dan cakupan (scope) yang diharapkan.
Membangun dan menguji API. Verifikasi bahwa server Anda memasukkan klaim yang benar ke dalam token, dengan waktu kedaluwarsa yang tepat, sebelum aplikasi dirilis.
Mempelajari cara kerja OAuth dan OpenID Connect. ID token dan access token dari penyedia identitas (identity provider) sering kali berupa JWT. Mendekode token uji coba akan memperlihatkan informasi apa saja yang dibagikan oleh penyedia layanan tentang seorang pengguna.
Anatomi JWT
header.payload.signature
- Header — jenis token dan algoritma penandatanganan, contohnya
{"alg":"HS256","typ":"JWT"}. - Payload — berisi klaim. Klaim terdaftar meliputi
iss(penerbit),sub(subjek, biasanya ID pengguna),aud(audiens),exp,nbf,iat, danjti(ID token). Aplikasi dapat menambahkan klaim kustom sepertinameataurole. - Signature — dibuat dengan menandatangani
header.payloadmenggunakan secret (HMAC) atau private key (RSA, ECDSA, EdDSA). Jika ada yang mengubah satu karakter saja pada header atau payload, signature tidak akan cocok lagi.
Karena payload hanya dienkode, jangan pernah memasukkan data rahasia seperti password ke dalam JWT. Untuk mendekode data Base64 lainnya, gunakan alat Base64; untuk mengecek timestamp apa pun, gunakan Unix Timestamp Converter.