tigtools

Penyahkod JWT

Tampalkan JWT untuk membaca pengepala dan tuntutannya serta melihat masa tamat tempohnya. Penyahkodan berlaku dalam pelayar anda dan tidak mengesahkan tandatangan.

Berjalan dalam pelayar anda Tanpa pendaftaran

Penyahkodan bukan pengesahan: sesiapa sahaja boleh mencipta token dengan sebarang kandungan. Alat ini tidak menyemak tandatangan. Ia berjalan hanya dalam pelayar anda, tetapi anda tetap harus elak menampal token pengeluaran sebenar ke mana-mana laman web.

Cara menggunakannya

  1. Salin token daripada pengepala Authorization, kuki atau alat pembangun pelayar anda. “Bearer ” di hadapan akan dibuang secara automatik.
  2. Tampalkannya ke dalam kotak. Pengepala dan payload akan dipaparkan sebagai JSON berformat.
  3. Semak baris status dan jadual tuntutan untuk penerbit, audiens dan tarikh tamat tempoh dalam waktu tempatan anda.
  4. Salin JSON pengepala atau payload jika anda memerlukannya di tempat lain.

Cara ia berfungsi

Token Web JSON (JWT, RFC 7519) dalam bentuk ditandatangani biasa (JWS) terdiri daripada tiga bahagian berkod base64url yang dipisahkan oleh titik. Pengepala menyatakan algoritma yang menandatangani token, contohnya HS256 (HMAC dengan SHA-256) atau RS256 (RSA). Payload mengandungi tuntutan (claims): pernyataan tentang pengguna dan token itu sendiri. Tandatangan membolehkan pelayan memeriksa bahawa pengepala dan payload tidak diubah.

Pengepala dan payload hanya dikodkan, bukan disulitkan. Sesiapa yang memiliki token boleh membaca kandungannya, dan itulah yang dilakukan oleh alat ini. Jangan letakkan rahsia dalam payload JWT.

Penyahkodan tidak membuktikan apa-apa tentang token. Tanpa kunci pengeluar, tiada siapa dapat mengetahui sama ada tandatangan itu tulen, jadi hasil di sini tidak boleh sekali-kali digunakan untuk menentukan sama ada token boleh dipercayai. Pengesahan hendaklah dilakukan pada pelayan anda, dengan pustaka JWT yang diselenggara yang memeriksa tandatangan, algoritma, exp, nbf, iss dan aud.

Tuntutan berdaftar diterangkan dalam jadual. exp, nbf dan iat ialah nilai NumericDate: saat sejak 1 Januari 1970 UTC. Alat ini menukarkannya kepada tarikh dalam zon waktu anda dan membandingkannya dengan jam peranti anda, tanpa kelonggaran kecil yang sering dibenarkan oleh pelayan untuk perbezaan jam. Jika jam anda salah, status juga akan salah.

Token dengan lima bahagian ialah JWT tersulit (JWE). Payloadnya tidak boleh dinyahkod tanpa kunci, jadi alat ini hanya melaporkan format.

Contoh

Mengapa API saya mengembalikan 401?

Nyahkod token akses yang dihantar oleh aplikasi anda. Jika baris status memaparkan “Tamat tempoh pada …”, klien perlu menyegarkan token. Jika aud menunjukkan https://api.example.com tetapi anda memanggil https://api2.example.com, audiens tidak sepadan.

Menyemak token ID OpenID Connect

Token ID daripada penyedia log masuk mengandungi iss (penyedia), sub (ID pengguna yang kekal), aud (ID klien anda), iat dan exp, serta tuntutan profil seperti e-mel dan nama. Penyahkodan menunjukkan tuntutan yang sebenarnya diterima oleh aplikasi anda.

Membaca tuntutan cap masa

Satu payload mengandungi "exp": 1735689600. Jadual tuntutan memaparkannya sebagai 1 Januari 2025, 00:00:00 UTC, ditukar kepada waktu tempatan anda, bersama-sama dengan berapa lama dahulu atau berapa lama lagi tarikh itu.

Soalan Lazim

Adakah alat ini mengesahkan tandatangan JWT?

Tidak. Alat ini hanya menyahkod pengepala dan payload. Pengesahan memerlukan rahsia (untuk HS256) atau kunci awam penerbit (untuk RS256 dan ES256) dan harus dilakukan pada pelayan anda dengan pustaka yang dipercayai.

Adakah selamat untuk menampal token saya di sini?

Token dinyahkod dalam pelayar anda dan tidak dihantar ke mana-mana. Namun begitu, token yang sah berfungsi seperti kata laluan sehingga tamat tempoh, jadi utamakan token yang telah tamat atau token ujian, dan jangan sekali-kali menampal token produksi ke dalam alat yang tidak anda percayai.

Mengapa sesiapa sahaja boleh membaca payload?

JWT yang ditandatangani dikodkan dengan base64url, yang bukan penyulitan. Tandatangan melindungi token daripada perubahan, bukan daripada pembacaan. Jika kandungan mesti dirahsiakan, gunakan JWT tersulit (JWE) atau simpan data pada pelayan.

Apakah maksud “exp”, dan dalam unit apakah ia dinyatakan?

exp ialah masa tamat tempoh sebagai NumericDate: saat penuh (bukan milisaat) sejak 1970-01-01 00:00:00 UTC. Token mesti ditolak pada atau selepas masa itu.

Mengapa saya mendapat “base64url tidak sah”?

Token mungkin terpotong atau berubah semasa disalin, contohnya kehilangan aksara terakhir, tanda petikan di sekelilingnya, atau pengekodan URL (%2E dan bukannya titik). Tampalkan token mentah itu dengan tepat seperti yang dikeluarkan.

Privasi

Token dinyahkod dengan JavaScript dalam pelayar anda. Ia tidak dihantar ke mana-mana pelayan, tidak disimpan dan tidak disertakan dalam analitik. Tiada pengesahan tandatangan atau carian kunci dilakukan, jadi tiada permintaan rangkaian dibuat.