แยก header / payload / signature พร้อมบอกเป็นภาษาไทยว่า token หมดอายุหรือยัง และมี role อะไรบ้าง — ทำในเบราว์เซอร์คุณเอง
สมัครฟรีในไม่ถึงนาที ไม่ต้องใส่บัตรเครดิต · เก็บประวัติงานของคุณให้อัตโนมัติ
boltสมัครฟรี — ใช้ได้ทันทีไม่ได้ และเราไม่อ้างว่าทำได้ เครื่องมือนี้ถอดข้อความออกมาให้อ่านอย่างเดียว ไม่ได้คำนวณหรือเทียบลายเซ็นเลยแม้แต่ขั้นตอนเดียว การยืนยันว่า token ของแท้ต้องใช้กุญแจ ของผู้ออก token มาคำนวณลายเซ็นซ้ำ ซึ่งเป็นงานที่ต้องทำในระบบหลังบ้านเท่านั้น ที่สำคัญคือใครก็แก้เนื้อหาใน payload แล้วเข้ารหัส base64url ใหม่ให้อ่านออกได้เหมือนกัน ดังนั้น “ถอดได้สวยงาม” ไม่ได้แปลว่า “token ใบนี้เชื่อถือได้” อย่าใช้ผลจากหน้านี้ตัดสินเรื่องสิทธิ์
ใส่ไม่ได้เด็ดขาด สามส่วนของ JWT เข้ารหัสด้วย base64url ซึ่งเป็นแค่การแปลงตัวอักษร ไม่ใช่การเข้ารหัสลับ ใครที่ถือ token อยู่ในมือก็เปิดอ่านได้ทันทีเหมือนที่หน้านี้ทำ โดยไม่ต้องรู้กุญแจอะไรเลย จึงห้ามใส่รหัสผ่าน เลขบัตรประชาชน เลขบัตรเครดิต หรือความลับใด ๆ ลงใน payload ถ้าจำเป็นต้องซ่อนข้อมูลจริง ๆ ต้องใช้ JWE ซึ่งเป็นคนละมาตรฐานและเนื้อหาถูกเข้ารหัสไว้จริง เครื่องมือนี้จะบอกให้ถ้า token ที่วางเป็น JWE
claim เวลาใน JWT (exp, iat, nbf) เก็บเป็นจำนวน “วินาที” นับจากปี ค.ศ. 1970 แบบ UTC หน้านี้แปลงเป็นเวลาไทย UTC+7 ให้เสมอ ไม่ได้อิงเขตเวลาของเครื่องคุณ คุณจึงเห็นเวลาเดียวกับที่ระบบไทยใช้จริงแม้เปิดจากต่างประเทศ อีกกรณีที่พบบ่อยคือระบบต้นทางเผลอใส่ค่าเป็นมิลลิวินาที ทำให้วันที่กระโดดไปหลายพันปี หน้านี้จะตรวจให้และขึ้นคำเตือนไว้ เพราะไลบรารีตรวจ token ส่วนใหญ่จะมองว่า token นั้นไม่หมดอายุ
แต่ละระบบเก็บสิทธิ์ไว้คนละที่ หน้านี้จึงรวบรวมให้จาก claim ที่พบบ่อยทั้งหมด ทั้ง scope, scp, role, roles, permissions, authorities, groups และ cognito:groups รวมถึงกรณีของ Keycloak ที่ซ่อนบทบาทไว้ซ้อนอีกชั้นใน realm_access.roles และ resource_access ของแต่ละแอป ซึ่งเป็นจุดที่คนหาไม่เจอบ่อยที่สุด ถ้ายังไม่พบอะไรเลย มักแปลว่าระบบหลังบ้านเก็บสิทธิ์ไว้ในฐานข้อมูลแล้วดูจาก sub แทน ไม่ได้แปลว่าผู้ใช้คนนั้นไม่มีสิทธิ์