ถอดรหัส JWT
วาง JSON Web Token เพื่อดู header และ payload เป็น JSON ที่จัดรูปแบบแล้ว timestamp อย่าง exp, iat และ nbf จะถูกแปลงเป็นวันที่ที่อ่านง่าย และโทเค็นที่หมดอายุจะถูกทำเครื่องหมายไว้
โครงสร้างของ JWT
JWT มีสามส่วนคั่นด้วยจุด: header.payload.signature โดย header และ payload เป็นออบเจ็กต์ JSON ที่เข้ารหัสด้วย Base64URL แบบไม่มี padding ส่วน signature คำนวณจากสองส่วนแรกด้วยอัลกอริทึมที่ระบุใน header (alg) เช่น HS256 หรือ RS256
Registered claims
| Claim | ความหมาย |
|---|---|
iss | ผู้ออก (Issuer) |
sub | Subject (โดยทั่วไปคือ ID ผู้ใช้) |
aud | ผู้รับ (Audience) |
exp | เวลาหมดอายุ (วินาทีนับตั้งแต่ปี 1970) |
nbf | ยังไม่มีผลก่อนเวลา |
iat | ออกเมื่อ |
jti | ID เฉพาะของโทเค็น |
ถอดรหัส JWT ด้วย JavaScript
const [h, p] = token.split('.');
const json = (s) => JSON.parse(new TextDecoder().decode(
Uint8Array.from(atob(s.replace(/-/g, '+').replace(/_/g, '/')), (c) => c.charCodeAt(0))));
console.log(json(h), json(p)); คำถามที่พบบ่อย
วาง JWT ของฉันที่นี่ปลอดภัยหรือไม่?
การถอดรหัสเกิดขึ้นในเบราว์เซอร์ของคุณทั้งหมด ไม่มีข้อมูลใดถูกส่งไปยังเซิร์ฟเวอร์ อย่างไรก็ตาม ควรถือว่าโทเค็นที่ใช้งานจริงเป็นความลับ
การถอดรหัสตรวจสอบลายเซ็นด้วยหรือไม่?
ไม่ ใครก็ถอดรหัส JWT ได้เพราะเป็นเพียง Base64URL การตรวจสอบลายเซ็นต้องใช้ secret หรือ public key และต้องทำบนเซิร์ฟเวอร์ของคุณ
ความคิดเห็น (0)
มีคำถาม ไอเดีย หรือพบข้อผิดพลาดใน “ถอดรหัส JWT” ใช่ไหม? แสดงความคิดเห็น ให้คะแนนเครื่องมือ หรือตอบกลับผู้อื่นได้เลย
ยังไม่มีความคิดเห็น มาเป็นคนแรกที่แสดงความคิดเห็นสิ!