เครื่องมือถอดรหัส JWT
ถอดรหัสส่วนหัวและข้อมูลของ JSON Web Token (ไม่ตรวจสอบลายเซ็น)
JWT คืออะไร?
JSON Web Token ประกอบด้วยสามส่วนที่เข้ารหัสด้วย Base64URL แยกด้วยจุด: ส่วนหัว (อัลกอริธึมที่ใช้), ข้อมูล (claims — โดยทั่วไปคือ ID ผู้ใช้ วันหมดอายุ, scopes), และลายเซ็น ส่วนหัวและข้อมูลไม่ได้ถูกเข้ารหัส แต่เพียงแค่เข้ารหัส — ใครก็ตามที่มีโทเค็นสามารถอ่านได้ ลายเซ็นพิสูจน์ว่าโทเค็นไม่ได้ถูกดัดแปลง
ตัวถอดรหัสจะแยกสามส่วน ถอดรหัส Base64URL สองส่วนแรก และจัดรูปแบบ JSON ให้อ่านง่าย มันไม่ตรวจสอบลายเซ็น — นั่นต้องการคีย์ลับหรือคีย์สาธารณะจากเซิร์ฟเวอร์ที่ออกโทเค็น อย่าคัดลอกโทเค็นในสภาพแวดล้อมการผลิตไปยังตัวถอดรหัสที่ไม่เชื่อถือได้; ตัวนี้ทำงานเฉพาะในเบราว์เซอร์และไม่เคยอัปโหลด แต่เป็นนิสัย ให้ใช้โทเค็นจากสภาพแวดล้อมการพัฒนาของคุณสำหรับการทดสอบ
กรณีการใช้งาน
- ตรวจสอบ JWT ของบุคคลที่สาม — วางส่วนหัว Authorization เพื่ออ่านส่วนหัวและข้อมูลโดยไม่ต้องเชื่อถือดีบักเกอร์ระยะไกล
- แก้ไขข้อผิดพลาดการตรวจสอบสิทธิ์ — ตรวจสอบว่า claims exp / iat / aud ตรงกับที่แบ็กเอนด์ของคุณคาดหวังเมื่อเกิด 401 ในการพัฒนา
- ตรวจสอบโทเค็น OAuth / OIDC — ถอดรหัสโทเค็นการเข้าถึงหรือโทเค็น ID ที่ส่งคืนโดย Google, Auth0 หรือ Okta เพื่อดู claims ของผู้ใช้
- สอนโครงสร้าง JWT — แสดงให้นักเรียนเห็นสามส่วนที่เข้ารหัสด้วย Base64 และวิธีการที่การลงนามปกป้องแต่ไม่เข้ารหัสข้อมูล
ตัวอย่าง
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyXzEiLCJleHAiOjE3MDAwMDAwMDB9.signatureHeader:
{"alg": "HS256"}
Payload:
{"sub": "user_1", "exp": 1700000000}คำถามที่พบบ่อย
ตัวถอดรหัสตรวจสอบลายเซ็นหรือไม่?
ไม่ — การตรวจสอบต้องการคีย์ลับ (HS256) หรือคีย์สาธารณะ (RS256) ที่ใช้ในการลงนามโทเค็น ตัวถอดรหัสจะแสดงให้คุณเห็นว่าอยู่ข้างใน; ความไว้วางใจมาจากการตรวจสอบด้านเซิร์ฟเวอร์
เนื้อหาของ JWT ถูกเข้ารหัสหรือไม่?
ไม่ เพียงแค่เข้ารหัสด้วย Base64 ใครก็ตามที่มีโทเค็นสามารถอ่าน claims ได้ ใช้ JWE (JWT ที่เข้ารหัส) หาก claims ต้องการความลับ
claim `exp` หมายถึงอะไร?
Unix timestamp ที่โทเค็นหมดอายุ โทเค็นที่เกิน `exp` ควรถูกปฏิเสธโดยเซิร์ฟเวอร์ ตัวถอดรหัสจะทำเครื่องหมายโทเค็นที่หมดอายุให้คุณ
ฉันสามารถถอดรหัสโทเค็นที่มีข้อผิดพลาดได้หรือไม่?
หากส่วนใดส่วนหนึ่งไม่สามารถถอดรหัส Base64 หรือแปลงเป็น JSON ได้ ตัวถอดรหัสจะแสดงข้อผิดพลาดที่ชี้ไปยังส่วนที่มีปัญหา
โทเค็นของฉันถูกอัปโหลดหรือไม่?
ไม่ การถอดรหัสเป็น JavaScript ล้วน — โทเค็นของคุณอยู่ในอุปกรณ์ของคุณ
