Dekoder JWT
Token Web JSON adalah tiga segmen Url Base64: header.payload.signature. Tempelkan JWT untuk membaca algoritma (alg), penerbit (iss), subjek (sub), dan kedaluwarsa (exp) tanpa mengirimkan token ke server. Decoder ini tidak memverifikasi tanda tangan — gunakan rahasia aplikasi Anda atau JWKS untuk itu.
Token JWT
Output
{
"header": {
"alg": "HS256",
"typ": "JWT"
},
"payload": {
"sub": "1234567890",
"name": "Ada",
"iat": 1516239022
}
}
Cara mendekode JWT
1. Tempel string JWT (format eyJ...).
2. Baca header JSON yang didekode (typ, alg).
3. Baca klaim payload (sub, exp, peran).
4. Periksa exp terhadap waktu saat ini — token yang kedaluwarsa gagal dalam autentikasi API.
Contoh pemeriksaan JWT
Debug 401 Tidak Sah
Dekode token akses — exp mungkin sudah lewat karena jam yang miring atau TTL yang pendek.
Periksa OAuth id_token
Lihat klaim email dan nama yang dikembalikan dari penyedia identitas.
Tinjau perlengkapan uji
Konfirmasi token uji HS256 memiliki peran: klaim admin sebelum uji integrasi.
Kapan mendekode JWT
• Saat melakukan debug autentikasi dalam pengembangan dengan token uji.
• Saat mempelajari struktur JWT dan klaim standar.
• Saat memverifikasi payload sebelum menerapkan RBAC pemeriksaan.
Batas keamanan
• Jangan menempelkan token produksi dengan hak istimewa langsung ke situs web yang tidak tepercaya — alat ini bersifat lokal tetapi berhati-hatilah.
• Saat Anda memerlukan verifikasi tanda tangan — gunakan kripto sisi server dengan kunci rahasia/publik.
• Saat token dienkripsi JWE — format berbeda dari tiga bagian JWS.
Klaim terdaftar standar
iss (penerbit), sub (subjek), aud (audiens), exp (kedaluwarsa), nbf (bukan sebelumnya), iat (dikeluarkan pada), jti (ID JWT). Klaim khusus seperti peran atau tenant_id bersifat khusus aplikasi.
Algoritme tanda tangan
HS256 menggunakan rahasia bersama; RS256 menggunakan pasangan kunci publik/pribadi RSA. Kunci publik dipublikasikan melalui URL JWKS untuk verifikasi.
Kemiringan jam
API sering kali memberikan kelonggaran 30–60 detik pada exp/nbf. Jika valid di dekoder tetapi API menolak, periksa jam dan zona waktu server.
Jangan pernah mempercayai payload sendirian
Dekode sisi klien hanya untuk petunjuk UI — keputusan otorisasi harus memverifikasi tanda tangan di server setiap permintaan.
Pertanyaan yang sering diajukan
Apa saja tiga bagian JWT?
Header (algoritma & tipe), payload (klaim), tanda tangan (verifikasi). Dipisahkan dengan titik.
Apakah decoding memvalidasi token?
Tidak — siapa pun dapat memecahkan kode payload; tanda tangan membuktikan integritas dan penerbit.
Apa yang dimaksud dengan klaim exp?
Stempel waktu Unix detik ketika token kedaluwarsa. Bandingkan dengan waktu UTC saat ini.
Tidak ada serangan algoritme?
Server harus menolak alg:none — decoder mungkin masih menampilkan header untuk diaudit.
Data sensitif dalam payload?
payload JWT adalah Base64 yang tidak dienkripsi — jangan pernah memasukkan kata sandi atau PII tidak perlu.
Pemrosesan lokal?
Ya — token diuraikan di peramban.
Refresh vs token akses?
Keduanya sering kali merupakan JWT — mendekode masing-masing untuk melihat cakupan dan masa pakai yang berbeda.