Langsung ke konten
ToolMug

JWT Decoder

Tempel JSON Web Token untuk melihat header dan payload-nya, memeriksa apakah sudah kedaluwarsa, dan memverifikasi tanda tangan dengan secret atau kunci publik. Semuanya berjalan lokal, jadi token produksi tidak pernah dikirim ke server.

Berjalan di browser Anda — tidak ada yang Anda masukkan yang diunggah

Decode tidak memverifikasi tanda tangan. Siapa pun bisa membuat token dengan klaim apa pun.

Cara menggunakan

  1. Tempel token — dengan atau tanpa awalan "Bearer ". Ketiga bagiannya diberi warna berbeda.
  2. Baca header dan payload yang sudah didecode. Klaim iat, nbf, dan exp ditampilkan sebagai tanggal beserta waktu relatifnya.
  3. Untuk memverifikasi tanda tangan, masukkan shared secret untuk HS256/384/512, atau tempel kunci publik (PEM atau JWK) untuk token RS, PS, ES, dan EdDSA.
  4. Salin JSON hasil decode jika Anda memerlukannya di tempat lain.

Penjelasan opsi

Header
Metadata token, biasanya alg (algoritma penandatanganan) dan typ. Kolom kid menunjukkan kunci mana yang menandatanganinya.
Payload
Berisi klaim. Klaim terdaftar antara lain sub (subjek), iss (penerbit), aud (audiens), iat (waktu terbit), nbf (tidak berlaku sebelum), dan exp (kedaluwarsa), semua waktu dalam detik Unix.
Tanda tangan
Membuktikan bahwa header dan payload tidak diubah. Untuk memeriksanya diperlukan secret (HMAC) atau kunci publik penerbit (RSA, ECDSA, EdDSA).
Secret dienkode Base64
Beberapa layanan menyimpan secret HMAC dalam bentuk Base64. Centang opsi ini jika secret yang Anda miliki adalah bentuk terenkodenya.

Klaim umum

Klaim Arti Contoh
sub Subjek token (ID pengguna) "1234567890"
iss Penerbit token "https://accounts.example.com"
aud Penerima yang dituju "my-api"
exp Waktu kedaluwarsa, detik Unix 1790427600
iat Waktu terbit, detik Unix 1790424000
nbf Tidak berlaku sebelum, detik Unix 1790424000
jti ID unik token, untuk mencegah replay "a1b2c3"

Contoh

Token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c didecode menjadi header {"alg":"HS256","typ":"JWT"} dan payload berisi sub, name, dan iat (18 Januari 2018). Dengan secret your-256-bit-secret, tanda tangannya terverifikasi.

Pertanyaan yang sering diajukan

Amankah menempelkan JWT produksi di sini?

Token didecode oleh JavaScript di browser Anda dan tidak diunggah atau dicatat. Meski begitu, perlakukan access token seperti kata sandi — siapa pun yang memegang token yang valid dapat memakainya hingga kedaluwarsa.

Apakah mendecode JWT membuktikan token itu asli?

Tidak. Header dan payload hanya dienkode Base64URL, jadi siapa pun bisa membaca atau memalsukannya. Hanya pemeriksaan tanda tangan yang berhasil dengan kunci yang benar yang menunjukkan token diterbitkan oleh pihak yang diharapkan.

Mengapa verifikasi gagal padahal secret-nya benar?

Periksa apakah secret dienkode Base64, apakah ada spasi atau baris baru di akhir, dan apakah algoritma di header sama dengan yang dipakai penerbit. Setiap perubahan pada token, bahkan satu karakter, juga merusak tanda tangan.

Apa arti "alg none"?

Token tersebut mengaku tidak ditandatangani. Server harus menolak token seperti ini kecuali memang secara eksplisit mengharapkannya; menerimanya pernah menyebabkan celah bypass autentikasi yang nyata.

Bagaimana cara mendapatkan kunci publik untuk token RS256?

Penyedia identitas memublikasikan kuncinya sebagai JWKS, biasanya di /.well-known/jwks.json. Salin kunci yang kid-nya cocok dengan header token, lalu tempel di sini sebagai JWK.

Privasi

Alat ini berjalan sepenuhnya di browser Anda. File dan teks Anda diproses di perangkat Anda dan tidak pernah diunggah ke server kami.

Alat terkait