วิธีถอดรหัส JWT
- วางโทเค็น (คำว่า
Bearerที่อยู่ด้านหน้าจะถูกลบออกโดยอัตโนมัติ) - อ่าน header และ payload ที่ถอดรหัสแล้วในรูปแบบ JSON ที่จัดเรียงอย่างเป็นระเบียบ และดูตาราง Claims เพื่อตรวจสอบวันหมดอายุและวันที่ออกโทเค็น
- หากต้องการ ให้เปิด ตรวจสอบลายเซ็น แล้วป้อนคีย์ลับ HMAC หรือคีย์สาธารณะในรูปแบบ PEM
โครงสร้างของ JWT
JSON Web Token ประกอบด้วยสามส่วนที่เข้ารหัสแบบ Base64URL และคั่นด้วยจุด: header.payload.signature ส่วน header ระบุอัลกอริทึมที่ใช้ลงนาม (เช่น HS256 หรือ RS256) ส่วน payload เก็บ claims และส่วน signature ใช้พิสูจน์ว่าสองส่วนแรกไม่ได้ถูกแก้ไข
Claims มาตรฐาน (Registered claims)
iss– ผู้ออกโทเค็นsub– ผู้ใช้หรือเจ้าของโทเค็นaud– ผู้รับที่โทเค็นตั้งใจให้ใช้งานexp,nbf,iat– เวลาหมดอายุ เวลาเริ่มใช้ได้ และเวลาที่ออกโทเค็น ในรูปแบบ Unix timestampjti– รหัสเฉพาะของโทเค็น
คำถามที่พบบ่อย
วางโทเค็นที่นี่ปลอดภัยไหม?
โทเค็นถูกถอดรหัสภายในเบราว์เซอร์ของคุณและไม่ถูกส่งไปที่ใดเลย อย่างไรก็ตาม ควรดูแลโทเค็นที่ยังใช้งานอยู่เหมือนรหัสผ่าน และหลีกเลี่ยงการแชร์ให้ผู้อื่น
ใคร ๆ ก็อ่าน payload ของ JWT ได้ใช่ไหม?
ใช่ JWT ที่ลงนามแล้วเป็นเพียงข้อมูลที่เข้ารหัสแบบ Base64URL ไม่ได้เข้ารหัสลับ จึงไม่ควรใส่ข้อมูลลับไว้ใน payload มีเพียงโทเค็นที่เข้ารหัสลับ (JWE) เท่านั้นที่ซ่อนเนื้อหาไว้ได้
ทำไมจึงไม่ตรวจสอบลายเซ็นโดยอัตโนมัติ?
การตรวจสอบต้องใช้คีย์ลับหรือคีย์สาธารณะของผู้ออกโทเค็น ให้ป้อนคีย์ในส่วนตรวจสอบลายเซ็น รองรับอัลกอริทึม HS, RS, PS และ ES