Decoder JWT
Lihat isi sebenarnya dari sebuah JSON Web Token.
Claim
| Claim | Nilai | Arti |
|---|
Alat ini mendecode token tapi tidak pernah memverifikasi signature. Token kamu tetap di tab browser ini.
Jalan di browser kamu. Apa pun yang kamu ketik tidak dikirim ke mana pun.
- Tanggal exp dan iat yang mudah dibaca
- Status kedaluwarsa sekali lihat
- Token tetap di perangkat kamu
Cara mendecode JWT
- Tempel tokennya, dengan atau tanpa prefix Bearer.
- Baca header dan payload-nya, ditampilkan sebagai JSON yang rapi.
- Cek tabel claim untuk issuer, audience, dan waktu kedaluwarsa.
Tiga bagian dari sebuah JWT
| Bagian | Encoding | Isi |
|---|---|---|
| Header | JSON base64url | Algoritma signing (alg) dan tipe token (typ) |
| Payload | JSON base64url | Claim-nya: data sebenarnya dari token |
| Signature | Byte base64url | Bukti bahwa header dan payload tidak diubah |
Algoritma signing yang umum dipakai
| Nilai alg | Tipe | Catatan |
|---|---|---|
| HS256 | Simetris, secret bersama | Umum untuk satu aplikasi yang menerbitkan sekaligus mengecek tokennya sendiri |
| RS256 | Asimetris, RSA | Umum saat pihak lain perlu memverifikasi token, seperti pada OAuth |
| ES256 | Asimetris, elliptic curve | Signature lebih pendek dari RSA untuk level keamanan yang sama |
| none | Tanpa signature | Verifikator seharusnya selalu menolak algoritma ini |
Claim standar, dari RFC 7519
- exp, nbf, dan iat semuanya nilai NumericDate: detik bulat sejak Unix epoch, tidak pernah dalam milidetik.
- aud bisa berupa satu string atau array string, kalau sebuah token ditujukan untuk lebih dari satu audience.
- jti dimaksudkan unik untuk tiap token, itulah yang membuat blocklisting satu token tertentu jadi mungkin.
- Tidak ada satu pun claim standar yang wajib ada. Sebuah token bisa hanya membawa claim custom yang didefinisikan aplikasinya.
FAQ Decoder JWT
Apa tiga bagian dari sebuah JWT?
Header, payload, dan signature, masing-masing di-encode base64url dan digabung dengan titik. Header menyebutkan algoritma signing-nya, payload menyimpan claim-nya, dan signature memungkinkan server mengecek siapa yang menerbitkan token itu.
Apakah alat ini memverifikasi signature?
Tidak. Alat ini hanya mendecode header dan payload, dan tidak pernah mengecek signature-nya. Verifikasi token di server kamu memakai secret atau public key sebelum mempercayainya. Token yang kamu tempel tidak pernah keluar dari browser kamu.
Apakah payload JWT terenkripsi?
Tidak, pada JWT yang ditandatangani biasa. Payload hanya di-encode, jadi siapa pun yang punya token itu bisa membacanya, makanya kata sandi dan data pribadi tidak boleh ditaruh di dalamnya. Token terenkripsi (JWE) punya lima bagian dan butuh key-nya.
Apa arti exp, iat, dan nbf?
Ketiganya adalah waktu dalam detik sejak 1 Januari 1970 (UTC). exp adalah waktu token kedaluwarsa, iat adalah waktu token diterbitkan, dan nbf adalah waktu sebelum mana token tidak boleh diterima.
Kenapa tokenku terlihat sudah kedaluwarsa?
Waktu exp-nya lebih awal dari jam perangkat kamu. Access token biasanya cuma berlaku 5 sampai 60 menit, jadi minta token baru, dan pastikan jam komputer kamu sudah diatur dengan benar.
Apa yang didefinisikan RFC 7519?
RFC ini mendefinisikan format JWT itu sendiri: tiga bagian base64url yang digabung dengan titik, dan arti claim standar seperti iss, sub, exp, dan aud. RFC ini tidak mewajibkan algoritma signing tertentu.
Bisakah JWT dicabut sebelum kedaluwarsa?
Tidak bisa lewat token itu sendiri, karena token hanyalah data yang ditandatangani. Mencabutnya lebih awal butuh dukungan di sisi server, seperti blocklist berdasarkan claim jti, atau masa berlaku pendek dipasangkan dengan refresh token terpisah.
Kenapa exp dan iat ditampilkan sebagai angka besar, bukan tanggal?
Keduanya disimpan di dalam token sebagai nilai NumericDate, yaitu jumlah detik bulat sejak Unix epoch (1 Januari 1970 UTC). Halaman ini menampilkan angka mentahnya di samping tanggal yang mudah dibaca supaya lebih praktis.