Penyahkod JWT

Nyahkod header dan payload Token Web JSON (tiada pengesahan tandatangan)

Tandatangan ditunjukkan secara mentah — alat ini tidak mengesahkannya. Untuk mengesahkan kesahihan, gunakan pelayan dengan kunci rahsia/awam.

Apa itu JWT?

Token Web JSON adalah tiga bahagian yang dikodkan Base64URL yang dipisahkan oleh titik: header (algoritma yang digunakan), payload (tuntutan — biasanya ID pengguna, tamat tempoh, skop), dan tandatangan. Header dan payload TIDAK disulitkan, hanya dikodkan — sesiapa yang mempunyai token boleh membacanya. Tandatangan membuktikan token tidak diubah.

Penyahkod membahagikan tiga bahagian, mengkodkan semula Base64URL untuk dua yang pertama, dan mencetak JSON dengan kemas. Ia TIDAK mengesahkan tandatangan — itu memerlukan kunci rahsia atau awam pelayan yang mengeluarkan. Jangan tampal token pengeluaran ke dalam penyahkod yang tidak dipercayai; yang ini hanya dalam pelayar dan tidak pernah dimuat naik, tetapi sebagai amalan, gunakan token dari persekitaran dev anda sendiri untuk ujian.

Kes penggunaan

  • Audit JWT pihak ketiga — tampal Authorization header untuk membaca header dan payload tanpa mempercayai penyahpepijat jauh.
  • Nyahpepijat kegagalan auth — sahkan tuntutan exp / iat / aud sepadan dengan apa yang dijangkakan backend apabila 401 berlaku dalam pembangunan.
  • Periksa token OAuth / OIDC — nyahkod access atau id token yang dikembalikan oleh Google, Auth0 atau Okta untuk melihat tuntutan pengguna.
  • Mengajar struktur JWT — tunjukkan kepada pelajar tiga segmen Base64 dan bagaimana penandatanganan melindungi tetapi tidak menyulitkan payload.

Contoh

Decoding a sample token
Input
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzEiLCJleHAiOjE3MDAwMDAwMDB9.signature
Output
Header:
{"alg": "HS256"}

Payload:
{"sub": "user_1", "exp": 1700000000}

Soalan yang sering ditanya

Adakah penyahkod mengesahkan tandatangan?

Tidak — pengesahan memerlukan kunci rahsia (HS256) atau kunci awam (RS256) yang digunakan untuk menandatangani token. Penyahkod hanya menunjukkan apa yang ada di dalamnya; kepercayaan datang dari pengesahan sisi pelayan.

Adakah kandungan JWT disulitkan?

Tidak, hanya dikodkan Base64. Sesiapa yang mempunyai token boleh membaca tuntutan. Gunakan JWE (JWT yang disulitkan) jika tuntutan perlu dirahsiakan.

Apa maksud tuntutan `exp`?

Cap waktu Unix di mana token tamat. Token yang melepasi `exp` mereka harus ditolak oleh pelayan. Penyahkod menandakan token yang telah tamat untuk anda.

Bolehkah saya nyahkod token yang tidak betul?

Jika satu bahagian gagal untuk dikodkan semula Base64 atau ditafsir sebagai JSON, penyahkod menunjukkan ralat yang menunjukkan bahagian yang bermasalah.

Adakah token saya dimuat naik?

Tidak. Penyahkodan adalah JavaScript tulen — token anda kekal di peranti anda.