401 Unauthorized: วิธีแก้ไข

ข้อผิดพลาด 401 หมายความว่าเซิร์ฟเวอร์ไม่ทราบว่าคุณคือใคร ซึ่งแตกต่างจากข้อผิดพลาด 403 โดยที่ 403 หมายถึงคุณได้รับการยืนยันตัวตนแล้วแต่ไม่มีสิทธิ์เข้าถึง ส่วน 401 หมายถึงการยืนยันตัวตนของคุณล้มเหลว

ข่าวดีคือคุณสามารถแก้ไขเรื่องนี้ได้ โดยปกติแล้วมักจะเป็นข้อผิดพลาดจากการตั้งค่า (configuration error)

สาเหตุทั่วไปของข้อผิดพลาด 401:

  • พิมพ์ API key ผิด แม้แต่ช่องว่างเพียงช่องเดียวที่ท้าย key ก็อาจทำให้ใช้งานไม่ได้ ดังนั้นควร trim key ของคุณเสมอ
  • Key หมดอายุ ผู้ให้บริการมักจะหยุดทำงานโดยไม่มีการแจ้งเตือนล่วงหน้า ควรตรวจสอบวันหมดอายุของคุณ
  • ข้อผิดพลาดของ Environment variable โค้ดของคุณอาจยังคงใช้การตั้งค่าเก่าอยู่ ซึ่งมักเกิดขึ้นบ่อยใน Docker containers
  • รูปแบบ Header ไม่ถูกต้อง API บางตัวต้องการ Bearer prefix ในขณะที่บางตัวใช้ custom headers เช่น X-API-Key
  • ปัญหาจาก Proxy ตัว gateway อาจบล็อกคุณก่อนที่คุณจะส่งคำขอไปถึง API เสียด้วยซ้ำ

ใช้ checklist นี้ในการ debug:

• พิมพ์ key ที่คุณกำลังส่งออกไปเพื่อตรวจสอบให้แน่ใจว่าตรงกับข้อมูลที่คุณมี • ตรวจสอบว่า key ยังคงใช้งานได้อยู่ • ตรวจสอบรูปแบบ header ของคุณเทียบกับ documentation • ทดสอบ key ด้วยคำสั่ง curl ใน terminal ของคุณ • ตรวจสอบว่ามี proxy กำลังเปลี่ยนแปลง header ของคุณหรือไม่

เลิกพยายามใช้ retry logic ได้แล้ว การ retry เมื่อเจอ 401 ไม่ได้ช่วยอะไร คุณต้องแก้ไข credentials ให้ถูกต้องก่อน

ที่มา: https://dev.to/laowuuu_dev/401-unauthorized-the-api-error-thats-easier-to-fix-than-you-think-3o4h