JWT คือ

JWT คือ JSON Web Token เป็นรูปแบบหนึ่งที่ใช้ในการสร้างรหัส token จากข้อมูล JSON Data แล้วทำการเข้ารหัสด้วย Base64Url และถือว่าเป็นมาตรฐานเปิด(RFC 7519) ที่เข้ามาแก้ปัญหาการส่งข้อมูลอย่างปลอดภัยระหว่างกัน โดยถูกออกแบบไว้ว่า จะต้องมีขนาดที่กะทัดรัด (Compact) และเก็บข้อมูลภายในตัว(Self-contained)

หน้าตาของ JWT จะเป็น xxxxxxxx.yyyyyyyy.zzzzzzzz

โดยจะแบ่งเป็น 3 ส่วน ประกอบด้วย

  1. Header – เป็นส่วนที่บอกรายละเอียดของ J W T  ประกอบไปด้วย
    • ชนิดของข้อมูล
    • การเข้ารหัส
  2. Payload – เป็นส่วนที่เก็บข้อมูลต่างๆ ที่เราต้องการส่งไปใน Token โดยจะเก็บอยู่ในรูปของ JSON Obeject
  3. Signature – เป็นส่วนที่เอาไว้เช็คว่า ข้อมูลของ Header และ Payload ถูกต้องหรือไม่ มีการแก้ไข หรือเปลี่ยนแปลงอะไรรึเปล่า ถ้าเกิดการเปลี่ยนแปลง Token จะไม่ถูกนำมาใช้ เพราะไม่มีความน่าเชื่อถือ

ส่วนการทำ J W T นั้น ก็คือการนำเอาส่วนของ Header, Payload และ Signature มาต่อกันขั้นด้วยจุด(.) แล้วเราก็จะได้ Token แล้ว

jwt

ข้อดี

  • เป็น JSON มันจึงสามารถใช้งานกับภาษาโปรแกรมได้หลายภาษา
  • เก็บทุกอย่างไว้ในตัวของมันเองแม้กระทั้งข้อมูลทั่วไปของผู้ใช้งาน (ต้องเป็นข้อมูลที่เปิดเผยได้นะครับเพื่อความปลอดภัย)
  • ง่ายต่อการส่งไปส่งมา เพราะว่ามันเป็น JSON และก็เก็บทุกอย่างที่จำเป็นไว้กับตัวเองจึงทำให้มันง่ายต่อการส่ง ไม่ว่าจะส่งไปกับ url, ajax, header หรืออะไรก็แล้วแต่ที่สามารถส่ง string ได้

JSON Web Token สามารถใช้ได้กับทุกภาษาที่รองรับข้อมูลแบบ JSON และสามารถส่งผ่าน HTTP header, POST, URL ได้ง่าย รวดเร็ว และมีความปลอดภัยด้วยตัวของมันเอง (ทั้งนี้ทั้งนั้นขึ้นอยู่กับการ implement ) อย่างที่ได้ย้ำอยู่เสมอว่าข้อมูลนี้จะนำมาทำเป็น token จะต้องเป็นข้อมูลที่เปิดเผยได้นะครับ เพราะยังไงการเข้ารหัสก็เป็นการเข้ารหัสด้วย Base64 ซึ่งทุกคนสามารถเปิดมันได้จึงต้องใช้มันด้วยความรอบคอบ

อยากลองทำหรือศึกษา ก็สามารถตามไป ที่นี่ เลย

source : [1] [2] [3]