เครื่องมือภาษาไทย / ถอด JWT (JWT Decoder) ดู claims และวันหมดอายุEnglish version →

ถอด JWT (JWT Decoder) ดู claims และวันหมดอายุ

JWT ประกอบด้วยสามส่วนคั่นด้วยจุด: header.payload.signature โดยสองส่วนแรกเป็นแค่ base64url ที่ใครก็อ่านได้ — ไม่ได้ถูกเข้ารหัสลับ เครื่องมือนี้แกะให้เห็น claims ทั้งหมด พร้อมแปลง exp/iat เป็นวันเวลาอ่านง่าย และบอกทันทีว่า token หมดอายุหรือยัง (สาเหตุอันดับหนึ่งของ 401)

ที่สำคัญที่สุด: การถอดทำในเบราว์เซอร์ทั้งหมด token ไม่ถูกส่งไปไหน — ต่างจากการวาง token ลงเว็บที่ประมวลผลฝั่งเซิร์ฟเวอร์ซึ่งเท่ากับยื่นกุญแจให้คนอื่น อย่างไรก็ตาม token ที่เคยหลุดไปที่ไหนแล้วควรถือว่า compromised และ rotate ตามนโยบายองค์กร

วิธีใช้งาน

  1. วาง JWT ทั้งก้อน (ตัด 'Bearer ' ออกก่อนถ้ามี)
  2. อ่าน header, payload และเวลาหมดอายุที่แปลงให้แล้ว
  3. ถ้าจะตรวจลายเซ็น ใช้เครื่องมือ JWT Signature Verifier ต่อ

คำถามที่พบบ่อย

ถอด JWT ได้แปลว่าปลอม token ได้เลยไหม
อ่านได้ทุกคน แต่ 'ปลอมแล้วผ่าน' ไม่ได้ เพราะเซิร์ฟเวอร์ตรวจลายเซ็นด้วยกุญแจลับ การแก้ payload แม้ตัวอักษรเดียวทำให้ลายเซ็นไม่ตรงทันที — บทเรียนสำคัญคืออย่าใส่ข้อมูลลับใน payload เพราะทุกคนอ่านออก
ทำไม exp แสดงเป็นปี 1970 หรืออนาคตไกลผิดปกติ
ฝั่งออก token ใส่ค่าเป็น millisecond แทนที่จะเป็นวินาที (มาตรฐาน JWT ใช้วินาทีตั้งแต่ epoch) — ตัวเลข 13 หลักคือ ms, 10 หลักคือวินาที
token 5 ส่วน (จุด 4 จุด) ถอดไม่ได้เพราะอะไร
นั่นคือ JWE (encrypted JWT) ซึ่งเข้ารหัสลับจริง ๆ อ่าน payload ไม่ได้ถ้าไม่มีกุญแจ ต่างจาก JWS สามส่วนที่แค่เซ็นกำกับ