Cara menggunakan JWT Decoder
- Tempel JWT (dengan atau tanpa awalan
Bearer) ke kotak Encoded token, atau klik Muat contoh. - Baca header dan payload yang sudah di-decode; badge menampilkan algoritma dan apakah token sudah kedaluwarsa.
- Periksa tabel Claims untuk melihat waktu
exp,iatdannbfyang mudah dibaca sesuai zona waktu lokal kamu. - Opsional: verifikasi tanda tangan dengan memasukkan shared secret untuk HS256/384/512, atau tempel public key (PEM atau JWK) untuk token RS, PS, ES dan EdDSA.
Apa itu JWT?
JSON Web Token (JWT, dibaca “jot”, didefinisikan dalam RFC 7519) adalah string ringkas dan aman untuk URL yang dipakai untuk mengirim claims antar pihak — paling sering sebagai access token atau ID token di OAuth 2.0 dan OpenID Connect, dikirim dalam header Authorization: Bearer …. Token ini terdiri dari tiga bagian yang dikodekan dengan Base64URL dan dipisahkan oleh titik:
- Header — JSON yang mendeskripsikan token, misalnya
{"alg":"HS256","typ":"JWT"}. - Payload — JSON berisi claims: siapa penggunanya, apa yang boleh dilakukan, dan kapan token kedaluwarsa.
- Signature — dihitung dari
header.payloadmenggunakan secret atau private key, sehingga perubahan pada dua bagian pertama akan membuat tanda tangan tidak valid.
Penting: header dan payload hanya dikodekan, bukan dienkripsi. Siapa pun yang memegang token bisa membacanya — dan itulah yang dilakukan decoder ini. Jangan pernah menaruh secret atau data pribadi yang sensitif di payload JWT. (Ada token terenkripsi — JWE, dengan lima bagian — tetapi payload-nya hanya bisa dibaca dengan kunci dekripsi.)
Registered claims
| Claim | Nama | Arti |
|---|---|---|
iss | Issuer | Pihak yang menerbitkan token (misalnya URL auth server kamu) |
sub | Subject | Pengguna atau entitas yang diwakili oleh token |
aud | Audience | API yang seharusnya menerima token ini |
exp | Expiration | Unix time setelah token harus ditolak |
nbf | Not before | Unix time sebelum token belum berlaku |
iat | Issued at | Unix time saat token dibuat |
jti | JWT ID | ID unik, berguna untuk mencegah replay |
Claim waktu dihitung dalam detik sejak 1 Januari 1970 UTC — bukan milidetik. Ini sering menjadi bug saat membuat token di JavaScript dengan Date.now(). Decoder ini mengubahnya menjadi tanggal yang mudah dibaca; untuk timestamp lain gunakan Konverter Unix Timestamp.
Algoritma tanda tangan
HS256/384/512 memakai HMAC dengan shared secret: kunci yang sama digunakan untuk menandatangani dan memverifikasi, sehingga setiap pihak yang memverifikasi juga bisa membuat token. RS256 (RSA), PS256 (RSA-PSS), ES256 (ECDSA P-256) dan EdDSA memakai private key untuk menandatangani dan public key untuk memverifikasi — pilihan yang lebih baik jika beberapa layanan harus memvalidasi token. Identity provider biasanya mempublikasikan public key mereka sebagai JWKS di URL seperti /.well-known/jwks.json; kamu bisa menempel JSON tersebut di sini, dan key yang cocok dengan kid token akan dipilih otomatis. Verifikasi menggunakan Web Crypto API bawaan browser.
Checklist keamanan
- Selalu verifikasi tanda tangan di server — decode saja tidak membuktikan apa pun.
- Tolak
alg: nonedan tetapkan algoritma yang kamu harapkan, untuk menghindari serangan algorithm confusion. - Periksa
exp,nbf,issdanaud, dengan toleransi selisih jam (clock skew) yang kecil. - Untuk HS256, gunakan secret acak minimal 256 bit — Password Generator bisa membuatkannya untukmu.
Juga dicari sebagai: decode jwt online, cek token jwt, json web token, verifikasi jwt, jwt expired, decode bearer token, jwt parser.
Tool yang cocok dipakai bersama JWT Decoder
- Generator PKCE — Uji atau debug login OAuth 2.0 / OpenID Connect dengan PKCE.
- Encode / Decode Base64 — Ubah teks ke Base64 dan sebaliknya dengan dukungan UTF-8 penuh (aksen, emoji), beralih ke Base64 URL-safe, atau seret file untuk mendapatkan string Base64 atau data URI-nya.
- Generator Hash — Hitung hash MD5 dan SHA dari teks atau file apa pun secara instan, buat tanda tangan HMAC, dan tempel checksum yang diharapkan untuk memverifikasi unduhan.
- Format JSON — Tempel JSON untuk dirapikan, di-minify, atau divalidasi.
Pertanyaan yang sering diajukan
Amankah menempel JWT saya di sini?
Bisakah JWT di-decode tanpa secret?
Bagaimana cara mengecek apakah JWT sudah kedaluwarsa?
exp — sebuah Unix timestamp dalam detik. Tool ini membandingkannya dengan jam perangkatmu dan menampilkan badge “Expired” atau “Not expired” beserta waktu persisnya sesuai zona waktu kamu.