Decoder JWT

Lihat isi sebenarnya dari sebuah JSON Web Token.

Tempel sebuah token untuk mendecode-nya.
Header
Payload
Signature

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.

Cara mendecode JWT

  1. Tempel tokennya, dengan atau tanpa prefix Bearer.
  2. Baca header dan payload-nya, ditampilkan sebagai JSON yang rapi.
  3. Cek tabel claim untuk issuer, audience, dan waktu kedaluwarsa.

Tiga bagian dari sebuah JWT

BagianEncodingIsi
HeaderJSON base64urlAlgoritma signing (alg) dan tipe token (typ)
PayloadJSON base64urlClaim-nya: data sebenarnya dari token
SignatureByte base64urlBukti bahwa header dan payload tidak diubah

Algoritma signing yang umum dipakai

Nilai algTipeCatatan
HS256Simetris, secret bersamaUmum untuk satu aplikasi yang menerbitkan sekaligus mengecek tokennya sendiri
RS256Asimetris, RSAUmum saat pihak lain perlu memverifikasi token, seperti pada OAuth
ES256Asimetris, elliptic curveSignature lebih pendek dari RSA untuk level keamanan yang sama
noneTanpa signatureVerifikator 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.

Alat terkait