Developer

JWT Token คืออะไร อ่านข้อมูลใน Payload ยังไง

🔑 JWT (JSON Web Token) ใช้กันแพร่หลายใน API Authentication — เมื่อ Login แล้วได้ Token มา นั่นคือ JWT ที่ server ใช้ยืนยันตัวตนของคุณในทุก Request ถัดไป

โครงสร้าง JWT

JWT ประกอบด้วย 3 ส่วนคั่นด้วยจุด (.):

HEADER
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
PAYLOAD
eyJzdWIiOiJ1c2VyMTIzIiwibmFtZSI6IkpvaG4iLCJpYXQiOjE3MTYwMDAwMDB9
SIGNATURE
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

แต่ละส่วน encode ด้วย Base64URL (Header และ Payload อ่านได้ทุกคน แต่ Signature ต้องใช้ secret key ตรวจสอบ)

อ่าน Header: algorithm ที่ใช้ sign

// Decode header: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
{
"alg": "HS256", // algorithm
"typ": "JWT"
}

Algorithm ที่พบบ่อย:

  • HS256: HMAC SHA-256 — ใช้ Shared Secret Key เหมาะสำหรับ API เดียวกัน
  • RS256: RSA SHA-256 — ใช้ Public/Private Key คู่ เหมาะสำหรับ Microservices
  • ES256: ECDSA — ขนาดเล็กกว่า RSA ปลอดภัยพอๆ กัน

อ่าน Payload: Claims ที่ใช้บ่อย

{
"sub": "user123", // Subject — User ID
"name": "สมชาย ใจดี", // Custom claim
"email": "[email protected]",
"role": "admin",
"iat": 1716000000, // Issued At (Unix timestamp)
"exp": 1716086400, // Expiration (Unix timestamp)
"iss": "api.myapp.com" // Issuer
}
Claimชื่อเต็มความหมาย
subSubjectUser ID หรือ identifier ของ token
iatIssued Atเวลาสร้าง token (Unix timestamp)
expExpirationเวลาหมดอายุ — server ปฏิเสธ token หลังจากนี้
issIssuerใครเป็นคนออก token
audAudiencetoken นี้ใช้กับ service ไหน
nbfNot Beforetoken ใช้ได้หลังเวลานี้เท่านั้น

Signature ทำงานอย่างไร

Signature สร้างจาก:

HMACSHA256(
base64url(header) + "." + base64url(payload),
secret_key
)

Server ที่รู้ secret_key เท่านั้นที่สามารถสร้างหรือตรวจสอบ Signature ได้ ถ้ามีใครแก้ไข Payload (เช่น เปลี่ยน role จาก "user" เป็น "admin") Signature จะ invalid ทันที

⚠️ Payload ของ JWT อ่านได้ทุกคน เพราะ Base64URL decode ง่ายมาก อย่าใส่ข้อมูลลับ เช่น password หรือ credit card ใน JWT Payload

วิธีใช้ JWT ใน HTTP Request

// ส่งใน Authorization header
GET /api/user/profile
Authorization: Bearer eyJhbGci...<token>

// JavaScript fetch
fetch('/api/data', {
headers: { 'Authorization': 'Bearer ' + token }
});

✅ ต้องการดู Payload ของ JWT ที่ได้รับมา? ใช้ JWT Decoder ที่ทำงานในเบราว์เซอร์ล้วน — token ไม่ถูกส่งออกไปไหน

🔍 Decode JWT Token และอ่าน Payload

วาง JWT Token ระบบ decode Header, Payload, ตรวจสอบ expiration และแสดงข้อมูลในรูปแบบอ่านง่าย

เปิด JWT Decoder →

ฟรี · ไม่ต้องสมัครสมาชิก · Token ไม่ออกจากเบราว์เซอร์