DevToolPal
ไทย
4xx ข้อผิดพลาดฝั่งไคลเอนต์

401 Unauthorized

ไม่ได้ยืนยันตัวตน

ความหมาย

คำขอไม่มีข้อมูลยืนยันตัวตนที่ถูกต้อง แม้ชื่อจะเป็น Unauthorized แต่หมายถึงยังไม่ได้ยืนยันตัวตน ให้เข้าสู่ระบบหรือส่งโทเค็นที่ถูกต้อง

สาเหตุที่พบบ่อย

  • ไม่มี header Authorization
  • โทเค็นหมดอายุหรือถูกเพิกถอน
  • ชื่อผู้ใช้ รหัสผ่าน หรือ API key ผิด

วิธีแก้ไข

สำหรับไคลเอนต์หรือผู้เยี่ยมชม

ส่งข้อมูลยืนยันตัวตนตามรูปแบบที่ header WWW-Authenticate ระบุ รีเฟรชโทเค็นที่หมดอายุ และตรวจการพิมพ์ผิดหรือ key ของสภาพแวดล้อมที่ผิด

สำหรับผู้ดูแลเว็บไซต์หรือ API

ใส่ header WWW-Authenticate กับ 401 เสมอ ใช้ 403 เมื่อผู้ใช้ยืนยันตัวตนแล้วแต่ไม่มีสิทธิ์

ตัวอย่างการตอบกลับ

HTTP/1.1
HTTP/1.1 401 Unauthorized
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
WWW-Authenticate: Bearer realm="api", error="invalid_token"
Content-Type: application/problem+json

{
  "type": "about:blank",
  "title": "Unauthorized",
  "status": 401,
  "detail": "The access token expired."
}

ข้อกำหนด

RFC 9110 §15.5.2

คำถามที่พบบ่อย

› 401 หรือ 403

401: เราไม่รู้ว่าคุณเป็นใคร กรุณายืนยันตัวตน 403: เรารู้ว่าคุณเป็นใคร และคุณไม่มีสิทธิ์ทำสิ่งนี้

› ทำไมได้ 401 ทันทีหลังเข้าสู่ระบบ

โดยมากเพราะโทเค็นไม่ได้แนบไปกับคำขอ (CORS ที่ไม่มี credentials ชื่อ header ผิด) หรือนาฬิกาคลาดเคลื่อนจนดูเหมือนหมดอายุ