ฉันใช้ flask-login เพื่อจัดการการตรวจสอบสิทธิ์สำหรับแอปของฉัน ซึ่งเป็น API ที่คาดหวังส่วนหัว HTTP Basic Authorization เป็นส่วนหนึ่งของคำขอแต่ละรายการ (เพื่อให้ผู้ใช้สามารถเข้าสู่ระบบและสร้างคำขอได้โดยไม่ต้องกังวลกับเซสชัน คุกกี้ หรือต้องทำ เข้าสู่ระบบและขอแยกขั้นตอน)
คำขอของฉันได้ผลดังนี้:
POST /api/group/48
GET /login?next=%2Fapi%2Fgroup%2F48
GET /api/group/48
นั่นคือคำขอ POST ไปยัง /api/group/48
กำลังถูกดักและเปลี่ยนเส้นทางไปยังตำแหน่งข้อมูล /login (ตามที่คาดไว้) สิ่งที่เกิดขึ้นใน /login ไม่มีการโต้ตอบ - ใช้ส่วนหัวการอนุญาตพื้นฐานและเข้าสู่ระบบผู้ใช้
หลังจากการเข้าสู่ระบบเสร็จสิ้น ลูกค้าจะถูกเปลี่ยนเส้นทางกลับไปที่ /api/group/48
- แต่คราวนี้เป็นคำขอ GET ไม่ใช่ POST และในแอปนี้ ตำแหน่งข้อมูล /api/group/48
คาดว่าจะมีเพียงข้อมูล POST เท่านั้น ดังนั้นจึงเกิดข้อผิดพลาด 405 (ไม่อนุญาตวิธีการ)
นี่เป็นพฤติกรรมที่คาดหวังของการเข้าสู่ระบบขวดหรือไม่ ฉันจะให้มันผ่านคำขอ POST ตามที่ส่งมาครั้งแรกได้อย่างไร (หรืออีกทางหนึ่ง ฉันควรใช้สถาปัตยกรรมที่แตกต่างกันเพื่อไม่ให้การเปลี่ยนเส้นทางไปที่ /login
จากนั้นกลับไปที่ /api/group/48
และข้อมูล POST จะไม่สูญหาย)
ฉันไม่ได้รวมรหัสไว้ เนื่องจากฉันไม่คิดว่านี่เป็นปัญหาเฉพาะรหัส แต่ถ้าปรากฏว่าฉันทำอะไรผิด ฉันสามารถโพสต์โค้ดตัวอย่างได้
ขอบคุณทุกคนที่สามารถช่วยได้
GET
- person Wayne Werner   schedule 13.07.2016