JWT ตัวถอดรหัส/

ข้อมูลของคุณเป็นส่วนตัว 100% -- JWT จะถูกถอดรหัสและเข้ารหัสโดยตรงบนอุปกรณ์ของคุณ

JWT
ส่วนหัวที่ถอดรหัส
เพย์โหลดที่ถอดรหัส
กุญแจสาธารณะ

เรียนรู้เกี่ยวกับ JWT

ข้อมูลทั้งหมดที่คุณสนใจเกี่ยวกับ JWT และคำแนะนำทีละขั้นตอนในการยืนยัน JWT ในเฟรมเวิร์กที่หลากหลาย

JWT คืออะไร?

JWT (JSON Web Token) เป็นโทเค็นที่ไม่ต้องใช้เซิร์ฟเวอร์ในการตรวจสอบสถานะ ที่มีข้อมูลในรูปแบบที่มีโครงสร้างและอ่านได้ ไม่ว่าจะเป็นการปกป้อง API หรือการนำการตรวจสอบสิทธิ์โดยใช้โทเค็นสำหรับแอปพลิเคชันของคุณ JWT ถือเป็นเครื่องมือที่มีประสิทธิภาพ เพราะว่า:

  • ไม่ต้องใช้เซิร์ฟเวอร์: JWT เป็นแบบพึ่งพาตนเองและไม่ต้องการสถานะเซิร์ฟเวอร์ในการตรวจสอบ JWT สามารถประกันความสมบูรณ์ของข้อมูลผ่านลายเซ็น
  • สามารถใช้งานร่วมกันระหว่างบริการ: JWT สามารถแบ่งปันและตรวจสอบได้อย่างง่ายดายระหว่างบริการต่างๆ
  • สามารถขยายได้: เพย์โหลดของ JWT สามารถมีการเรียกร้องที่กำหนดเอง ทำให้สามารถตรวจสอบสิทธิ์และการแบ่งปันข้อมูลได้ยืดหยุ่น
เรียนรู้เพิ่มเติม

โครงสร้างของ JWT

JWT ทั่วไปจะถูกแบ่งออกเป็นสามส่วน แต่ละส่วนจะถูกเข้ารหัส Base64URL และแยกด้วยจุด (.)

  • ส่วนหัว - มีเมทาดาต้า เช่น อัลกอริธึมลงชื่อ (เช่น HS256 หรือ RS256) และประเภทของโทเค็น (JWT)
  • เพย์โหลด - มีข้อมูลจริง เช่น รหัสผู้ใช้, โปรไฟล์ผู้ใช้, เวลาในการหมดอายุ หรือสโคป
  • ลายเซ็น - การผสมผสานการแฮชของ ส่วนหัว, เพย์โหลด, และการรักษาความปลอดภัยโดยใช้กุญแจส่วนตัว จุดประสงค์เพื่อประกันความสมบูรณ์ของโทเค็นและยืนยันว่าไม่ได้ถูกแก้ไข

โครงสร้างนี้ทำให้ JWT สามารถให้วิธีการที่กะทัดรัดและปลอดภัยในการส่งข้อมูลระหว่างคู่ค้าทั้งสองฝ่าย

jwt_structure

การเรียกร้องโทเค็นทั่วไปใน JWT

การเรียกร้องเหล่านี้เป็นส่วนหนึ่งของเพย์โหลดและถือข้อมูลสำคัญ นี่คือการเรียกร้องที่ลงทะเบียนตามมาตรฐานที่ให้คุณอ้างอิง:

เรียกร้องชื่อเต็มคำอธิบาย
issผู้ออกหน่วยงานที่ออก JWT เช่น เซิร์ฟเวอร์ที่อนุญาต
subหัวข้อระบุหัวข้อของ JWT ซึ่งโดยปกติหมายถึงผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์
audผู้รับฟังระบุว่าผู้รับจะรับและประมวลผลโทเค็นอย่างไร ซึ่งสามารถเป็นอาร์เรย์ของค่าสำหรับผู้รับหลายคนหรือค่าสำหรับผู้รับเดี่ยว
expเวลาในการหมดอายุกำหนดเวลาหมดอายุในโทเค็นหลังจากนั้นจะไม่สามารถใช้งานได้ ซึ่งนี้จะช่วยป้องกันการโจมตีซ้ำด้วยการกำหนดระยะเวลาการใช้งานของโทเค็น
nbfไม่น้อยกว่าทำให้โทเค็นมีผลตั้งแต่เวลาในเวลาเท่านั้น เข้มแข็งในสถานการณ์ที่ไม่มีการเข้าถึงนาฬิกา
iatเวลาที่ออกเมื่อโทเค็นถูกสร้างขึ้น ซึ่งสามารถใช้เพื่อตรวจสอบอายุของโทเค็น
jtiรหัส JWTตัวระบุที่ไม่ซ้ำกันสำหรับโทเค็น ซึ่งมีประโยชน์ในการป้องกันการใช้โทเค็นเดียวกันซ้ำหลายครั้ง (เช่น ในการโจมตีซ้ำ)

ขึ้นอยู่กับสเปคและการกำหนดค่าของเซิร์ฟเวอร์ที่อนุญาต อาจมีการรวมการเรียกร้องเพิ่มเติมในเพย์โหลดเพื่อสนับสนุนกรณีการใช้งานเฉพาะ นอกจากนี้ คุณสามารถเพิ่มการเรียกร้องที่กำหนดเองให้กับ JWT เพื่อตอบสนองข้อกำหนดทางธุรกิจเฉพาะเจาะจงได้

คำเตือน: อย่าเก็บข้อมูลส่วนตัวหรือข้อมูลที่อ่อนไหวในการเรียกร้อง JWT แม้ว่าการเรียกร้อง JWT จะถูกเข้ารหัส (โดยใช้ Base64URL) แต่ไม่ได้ถูกเข้ารหัส ซึ่งหมายความว่าใครก็ตามที่มีโทเค็นสามารถถอดรหัสและมองเห็นการเรียกร้องได้ ถึงแม้ว่าพวกเขาจะไม่สามารถเปลี่ยนแปลงได้โดยไม่ทำให้ลายเซ็นไม่ถูกต้อง ใช้การเข้ารหัสหรือวิธีการรักษาความปลอดภัยอื่นๆ เพื่อป้องกันข้อมูลที่อ่อนไหวเมื่อจำเป็น

เมื่อไหร่ควรใช้ JWT?

JWT อาจมีประโยชน์โดยเฉพาะในการดำเนินการต่อไปนี้:

  1. สถาปัตยกรรม Microservices: สำหรับการยืนยันสิทธิ์แบบไม่ใช้สถานะทั่วบริการหลายตัว
  2. ระบบ Single Sign-On (SSO): สามารถเข้าถึงแอปพลิเคชันหลายตัวได้ด้วยการตรวจสอบสิทธิ์เดียว
  3. แอปพลิเคชันบนมือถือ: ทำให้การรักษาการจัดการเซสชั่นผู้ใช้มีประสิทธิภาพในการเรียก API
  4. แอปพลิเคชันที่มีการเข้าถึงสูง: ลดภาระฐานข้อมูลในสภาพแวดล้อมที่มีปริมาณการใช้งานสูง
  5. การแชร์ทรัพยากรระหว่างต้นทางต่างกัน (CORS): ทำให้ง่ายต่อการตรวจสอบสิทธิ์ข้ามโดเมนหลายตัว
  6. สถาปัตยกรรม Serverless: ให้การยืนยันสิทธิ์แบบไม่ใช้สถานะที่การรักษาเซสเซ่นเซิร์ฟเวอร์เป็นสิ่งที่ท้าทาย
เรียนรู้เพิ่มเติม

วิธีการตรวจสอบ JWT?

ความสมบูรณ์ของ JWT จะต้องได้รับการตรวจสอบเพื่อยืนยันว่าข้อมูลหัวและเพย์โหลดไม่ได้ถูกดัดแปลง ด้านล่างนี้เป็นตัวอย่างทีละขั้นตอนได้จากการตรวจสอบ JWT ในสภาพแวดล้อมการพัฒนาโปรแกรมยอดนิยม:

หัวข้อที่เกี่ยวข้องกับ JWT

ข้อมูลทั้งหมดที่คุณสนใจเกี่ยวกับ JWT และคำแนะนำทีละขั้นตอนในการยืนยัน JWT ในเฟรมเวิร์กที่หลากหลาย

ปลดล็อกมากขึ้นด้วย Logto Cloud

ทำให้กระบวนการทำงานของคุณง่ายขึ้นและทำให้การจัดการผู้ใช้ปลอดภัยด้วย Logto Cloud ที่สร้างขึ้นบน OpenID Connect (OIDC) ซึ่งใช้ JWT เพื่อส่งมอบระบบการตรวจสอบสิทธิ์และการอนุญาตที่เชื่อถือได้ซึ่งออกแบบมาเพื่อขยายตามความต้องการของคุณ