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