Token belum kedaluwarsa, tetapi permintaan ditolak?
Periksa tujuan token terlebih dahulu. aud menunjukkan penerima yang dituju dan dapat berupa string atau array. iss menyatakan penerbit, sedangkan sub mengidentifikasi subjek token. Token untuk API lain tetap bisa ditolak meskipun exp masih di masa depan.
Klaim tersebut adalah pernyataan dari token itu sendiri. Berhasil membaca klaim tidak membuktikan siapa yang menerbitkannya. Klaim wajib dan nilai yang diterima bergantung pada aplikasi atau protokol yang digunakan.
Membaca header, payload, dan tanda tangan
JWT bertanda tangan yang umum memakai format header.payload.signature. Dua bagian pertama berisi objek JSON UTF-8 yang dikodekan dengan Base64url. Bagian terakhir berisi byte tanda tangan atau MAC, bukan dokumen JSON ketiga.
Tempel token saja, atau sertakan awalan Bearer maupun Authorization: Bearer. Jangan sertakan seluruh permintaan HTTP. Header dan payload dapat disalin secara terpisah. Penulisan angka asli, termasuk bilangan bulat besar, dipertahankan dalam JSON yang ditampilkan.
exp memakai detik sejak epoch Unix
exp adalah batas kedaluwarsa, nbf waktu paling awal token boleh dipakai, dan iat waktu penerbitan. Ketiganya dibaca sebagai NumericDate dalam detik. Angka 1704067200 berarti 1 Januari 2024 pukul 00.00 UTC. Nilai milidetik JavaScript tidak bisa langsung diperlakukan sebagai detik JWT.
Perbandingan memakai jam perangkat tanpa toleransi selisih waktu. Waktu exp yang belum tercapai bukan bukti tanda tangan benar atau aud cocok. iat di masa depan ditampilkan sebagai informasi; aturan penerimaan tetap ditentukan oleh aplikasi.
Dekode berbeda dari dekripsi dan verifikasi
Base64url hanya mengubah bentuk data, tidak merahasiakannya. Karena itu, isi JWT bertanda tangan bisa dibaca tanpa secret. Untuk menerima token, layanan perlu memverifikasi tanda tangan dengan kunci tepercaya dan algoritma yang diizinkan, lalu memeriksa klaim yang diwajibkan. Jangan menentukan kepercayaan hanya dari alg pada token masuk.
Alat ini tidak membuka URL kunci atau menggunakan kunci tertanam. JWE terenkripsi lima bagian, JWT bertingkat, dan b64: false tidak didukung. Batas masukan adalah 50.000 karakter dan 64 tingkat JSON. Kunci duplikat ditolak agar klaim tidak ditafsirkan secara berbeda.
Pelajari lewat contoh
Token kedaluwarsa
Klaim fiktif dan tanda tangan contoh, bukan kredensial yang dapat digunakan.
Kembali ke dekoder JWT ↑Klaim Unicode
Teks multibahasa dan beberapa penerima; tanda tangan hanya contoh.
Kembali ke dekoder JWT ↑Pertanyaan umum
Apakah perlu secret untuk membaca payload?
Tidak untuk JWT tiga bagian yang memuat objek JSON. Dekode Base64url tidak memerlukan kunci. Secret atau kunci publik diperlukan untuk verifikasi kriptografis, yang tidak dilakukan oleh alat ini.
Apa arti alg: none?
Token tidak memiliki tanda tangan kriptografis. Bagian ketiga kosong, tetapi titik terakhir tetap menjadi bagian token. Klaim yang terbaca tidak otomatis aman untuk dipakai dalam autentikasi.
Apakah token dikirim atau disimpan?
Pemrosesan berlangsung di browser. Alat tidak mengirim masukan ke API dekode, menyimpannya, atau menambahkannya ke URL. Token Bearer asli dapat memberikan akses ke layanan, jadi gunakan contoh fiktif saat mencoba fitur.
Apa yang bisa dipelajari dari contoh?
Contoh kedaluwarsa memiliki exp pada 1 Januari 2024 pukul 01.00 UTC dan tanda tangan pengganti. Contoh Unicode berisi beberapa bahasa serta daftar aud, juga dengan tanda tangan pengganti. Contoh tanpa tanda tangan memakai alg: none. Semuanya bukan kredensial nyata.
Mengapa muncul kesalahan format?
Pastikan tiga bagian lengkap dan tidak mengandung spasi, tanda kutip, atau padding tambahan. Header dan payload harus berupa objek JSON UTF-8. Kunci duplikat dan tanda tangan kosong yang tidak sesuai alg juga ditolak. Lima bagian dapat menandakan JWE terenkripsi.
