Server response 401 Unauthorized
HTTP สถานะโค้ด 401 (Unauthorized)
รหัสสถานะ HTTP 401 (Unauthorized) เป็นการระบุว่าคำขอไม่ได้ถูกนำไปใช้เนื่องจากไม่มีการพิสูจน์ตัวตนที่ถูกต้องสำหรับทรัพยากรที่ต้องการ รหัสนี้มักเกิดขึ้นในงานพัฒนาเว็บและอาจทำให้เกิดความเข้าใจผิดในหมู่นักพัฒนา โดยเฉพาะเมื่อทำงานกับ API ในบทความนี้ เราจะสำรวจสาเหตุที่ทำให้เกิดสถานะนี้ พร้อมกับตัวอย่างการเกิดปัญหาและวิธีแก้ไขในหลายภาษาโปรแกรมมิ่ง
สาเหตุที่ทำให้เกิดสถานะ 401
- ไม่มีข้อมูลการพิสูจน์ตัวตน
- ข้อมูลประจำตัวไม่ถูกต้อง
- โทเคนการเข้าถึงหมดอายุ
- รูปแบบของส่วนหัวการพิสูจน์ตัวตนไม่ถูกต้อง
ตัวอย่างการเกิดปัญหา
-
ตัวอย่างที่ 1: ข้อผิดพลาดเมื่อพยายามเข้าถึงทรัพยากรที่ป้องกัน
คำอธิบายสถานการณ์: ผู้ใช้พยายามเข้าถึง API ที่ต้องการการพิสูจน์ตัวตน แต่ไม่ได้ให้ข้อมูลประจำตัวใดๆ
พฤติกรรมที่คาดหวัง: เซิร์ฟเวอร์ส่งกลับสถานะ 401
-
ตัวอย่างที่ 2: ข้อมูลประจำตัวไม่ถูกต้อง
คำอธิบายสถานการณ์: ผู้ใช้ส่งคำขอด้วยชื่อผู้ใช้และรหัสผ่านที่ไม่ถูกต้อง
พฤติกรรมที่คาดหวัง: เซิร์ฟเวอร์ส่งกลับสถานะ 401 พร้อมข้อความเกี่ยวกับการพิสูจน์ตัวตนที่ไม่สำเร็จ
-
ตัวอย่างที่ 3: การใช้โทเคนที่หมดอายุ
คำอธิบายสถานการณ์: ผู้ใช้พยายามใช้โทเคนที่หมดอายุแล้ว
พฤติกรรมที่คาดหวัง: เซิร์ฟเวอร์ส่งกลับสถานะ 401 โดยขอให้ปรับปรุงโทเคน
วิธีการแก้ไขข้อผิดพลาด 401 ในหลายภาษาโปรแกรมมิ่ง
ภาษา | วิธีการ | ตัวอย่างโค้ด |
---|---|---|
JavaScript (Node.js) | การจัดการการพิสูจน์ตัวตนโดยใช้ไลบรารี jsonwebtoken |
|
Python (Flask) | ใช้ไลบรารี Flask เพื่อตรวจสอบข้อมูลการพิสูจน์ตัวตน |
|
PHP | การจัดการการพิสูจน์ตัวตนโดยใช้ส่วนหัว |
|
รหัสเพิ่มเติม
รหัส | คำอธิบาย |
---|---|
401.1 | การเข้าสู่ระบบล้มเหลว - ความพยายามเข้าสู่ระบบล้มเหลวเนื่องจากชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง |
401.2 | การเข้าสู่ระบบล้มเหลวเนื่องจากการกำหนดค่าเซิร์ฟเวอร์ - มีปัญหาในการกำหนดค่าการรับรองความถูกต้องบนเซิร์ฟเวอร์ |
401.3 | ไม่ได้รับอนุญาตเนื่องจาก ACL บนทรัพยากร - ปฏิเสธการเข้าถึงเนื่องจากสิทธิ์ของระบบไฟล์ NTFS |
401.4 | การอนุญาตล้มเหลวโดยตัวกรอง - ตัวกรอง ISAPI บล็อกคำขอเนื่องจากปัญหาการอนุญาต |
401.5 | การอนุญาตล้มเหลวโดยแอปพลิเคชัน ISAPI/CGI - แอปพลิเคชัน ISAPI หรือ CGI บล็อกคำขอเนื่องจากปัญหาการอนุญาต |
401.501 | ปฏิเสธการเข้าถึง: ขีดจำกัดอัตราการร้องขอพร้อมกันถึง - มากเกินไป คำขอพร้อมกันจาก IP ไคลเอนต์เดียวกัน |
401.502 | ปฏิเสธการเข้าถึง: ขีดจำกัดอัตราการร้องขอสูงสุด - IP ไคลเอนต์เกินจำนวนคำขอสูงสุดในเวลาที่ระบุ |
401.503 | ปฏิเสธการเข้าถึง: ที่อยู่ IP ปฏิเสธ - ที่อยู่ IP ไคลเอนต์อยู่ในรายการปฏิเสธ |
401.504 | ปฏิเสธการเข้าถึง: ชื่อโฮสต์ปฏิเสธ - ชื่อโฮสต์ไคลเอนต์อยู่ในรายการปฏิเสธ |