ความหมาย
คำขอไม่มีข้อมูลยืนยันตัวตนที่ถูกต้อง แม้ชื่อจะเป็น 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."
} ข้อกำหนด
คำถามที่พบบ่อย
› 401 หรือ 403
401: เราไม่รู้ว่าคุณเป็นใคร กรุณายืนยันตัวตน 403: เรารู้ว่าคุณเป็นใคร และคุณไม่มีสิทธิ์ทำสิ่งนี้
› ทำไมได้ 401 ทันทีหลังเข้าสู่ระบบ
โดยมากเพราะโทเค็นไม่ได้แนบไปกับคำขอ (CORS ที่ไม่มี credentials ชื่อ header ผิด) หรือนาฬิกาคลาดเคลื่อนจนดูเหมือนหมดอายุ