tigtools

Decoder JWT

Tempel JWT untuk membaca header dan klaimnya, serta melihat waktu kedaluwarsanya. Dekode dilakukan di browser Anda dan tidak memverifikasi tanda tangan.

Berjalan di browser Anda Tanpa perlu mendaftar

Dekode bukan verifikasi: siapa pun dapat membuat token dengan isi apa pun. Alat ini tidak memeriksa tanda tangan. Prosesnya hanya berjalan di browser Anda, tetapi sebaiknya tetap hindari menempelkan token produksi yang masih aktif ke situs web mana pun.

Cara menggunakan

  1. Salin token dari header Authorization, cookie, atau alat developer di browser. Awalan “Bearer ” akan dihapus secara otomatis.
  2. Tempel token ke kotak. Header dan payload akan ditampilkan sebagai JSON berformat.
  3. Periksa baris status dan tabel klaim untuk melihat penerbit, audiens, dan tanggal kedaluwarsa dalam waktu lokal Anda.
  4. Salin JSON header atau payload jika Anda membutuhkannya di tempat lain.

Cara kerja

JSON Web Token (JWT, RFC 7519) dalam bentuk bertanda tangan yang umum (JWS) terdiri dari tiga bagian yang dikodekan dengan base64url dan dipisahkan oleh titik. Header menunjukkan algoritma yang digunakan untuk menandatangani token, misalnya HS256 (HMAC dengan SHA-256) atau RS256 (RSA). Payload berisi klaim: pernyataan tentang pengguna dan token itu sendiri. Tanda tangan memungkinkan server memeriksa apakah header dan payload telah diubah.

Header dan payload hanya dikodekan, bukan dienkripsi. Siapa pun yang memiliki token dapat membaca isinya, dan itulah yang dilakukan alat ini. Jangan masukkan rahasia ke dalam payload JWT.

Mengurai token tidak membuktikan apa pun tentang token tersebut. Tanpa kunci penerbit, tidak ada yang bisa mengetahui apakah tanda tangannya asli. Karena itu, hasil di sini tidak boleh digunakan untuk menentukan apakah suatu token dapat dipercaya. Verifikasi harus dilakukan di server Anda dengan pustaka JWT terpelihara yang memeriksa tanda tangan, algoritma, exp, nbf, iss, dan aud.

Klaim terdaftar dijelaskan dalam tabel. exp, nbf, dan iat adalah nilai NumericDate: jumlah detik sejak 1 Januari 1970 UTC. Alat ini mengonversinya menjadi tanggal di zona waktu Anda dan membandingkannya dengan jam perangkat, tanpa toleransi kecil yang sering diberikan server untuk mengatasi perbedaan jam. Jika jam perangkat salah, statusnya juga akan salah.

Token dengan lima bagian adalah JWT terenkripsi (JWE). Payload-nya tidak dapat diurai tanpa kunci, jadi alat ini hanya melaporkan formatnya.

Contoh

Mengapa API saya mengembalikan 401?

Urai access token yang dikirim aplikasi Anda. Jika baris status menampilkan “Kedaluwarsa pada …”, klien perlu memperbarui token. Jika aud menunjukkan https://api.example.com, tetapi Anda memanggil https://api2.example.com, audiensnya tidak cocok.

Memeriksa ID token OpenID Connect

ID token dari penyedia login berisi iss (penyedia), sub (ID pengguna yang tetap), aud (ID klien Anda), iat dan exp, serta klaim profil seperti email dan name. Dengan mengurainya, Anda dapat melihat klaim yang benar-benar diterima aplikasi.

Membaca klaim stempel waktu

Sebuah payload berisi "exp": 1735689600. Tabel klaim menampilkannya sebagai 1 Januari 2025, 00:00:00 UTC, yang dikonversi ke waktu lokal Anda, beserta berapa lama waktu yang telah berlalu atau tersisa.

Pertanyaan yang sering diajukan

Apakah alat ini memverifikasi tanda tangan JWT?

Tidak. Alat ini hanya mengurai header dan payload. Verifikasi memerlukan secret (untuk HS256) atau kunci publik penerbit (untuk RS256 dan ES256), dan sebaiknya dilakukan di server Anda menggunakan pustaka tepercaya.

Apakah aman menempelkan token saya di sini?

Token diurai di browser Anda dan tidak dikirim ke mana pun. Meski begitu, token yang valid berfungsi seperti kata sandi hingga kedaluwarsa. Sebaiknya gunakan token yang sudah kedaluwarsa atau token pengujian, dan jangan pernah menempelkan token produksi ke alat yang tidak Anda percayai.

Mengapa siapa pun bisa membaca payload?

JWT bertanda tangan dienkode dengan base64url, yang bukan enkripsi. Tanda tangan melindungi token dari perubahan, bukan dari pembacaan. Jika isinya harus dirahasiakan, gunakan JWT terenkripsi (JWE) atau simpan datanya di server.

Apa arti “exp”, dan satuan apa yang digunakan?

exp adalah waktu kedaluwarsa dalam format NumericDate: bilangan detik bulat (bukan milidetik) sejak 1970-01-01 00:00:00 UTC. Token harus ditolak pada atau setelah waktu tersebut.

Mengapa muncul pesan “bukan base64url yang valid”?

Token mungkin terpotong atau berubah saat disalin, misalnya karakter terakhir hilang, ada tanda kutip di sekelilingnya, atau URL encoding (%2E alih-alih titik). Tempel token mentah persis seperti saat diterbitkan.

Privasi

Token didekode dengan JavaScript di browser Anda. Token tidak dikirim ke server mana pun, tidak disimpan, dan tidak disertakan dalam analitik. Tidak ada verifikasi tanda tangan atau pencarian kunci, jadi tidak ada permintaan jaringan yang dilakukan.