คำถามติดแท็ก http-authentication


4
CURL เพื่อเข้าถึงเพจที่ต้องเข้าสู่ระบบจากเพจอื่น
ฉันมี 2 หน้า: xyz.com/aและxyz.com/b. ฉันสามารถเข้าถึงได้xyz.com/bเฉพาะในกรณีที่ฉันลงชื่อเข้าใช้xyz.com/aก่อนเท่านั้น หากเข้าถึงxyz.com/bโดยไม่ผ่านทางอื่นฉันก็ถูกปฏิเสธการเข้าถึง (ไม่มีการเปลี่ยนเส้นทางไปยังการเข้าสู่ระบบ) ผ่านเบราว์เซอร์ เมื่อฉันเข้าสู่ระบบที่xyz.com/aฉันสามารถเข้าถึงอื่น ๆ ปัญหาของฉันคือทำสิ่งนี้โดยใช้คำสั่ง curl ฉันสามารถเข้าสู่ระบบxyz.com/aโดยใช้ curl ได้สำเร็จแต่ลองแล้วxyx.com/bฉันถูกปฏิเสธการเข้าถึง ฉันใช้สิ่งต่อไปนี้: curl --user user:pass https://xyz.com/a #works ok curl https://xyz.com/b #doesn't work ฉันได้ลองใช้บรรทัดที่สองโดยไม่มีส่วนผู้ใช้ / รหัสผ่านแล้ว แต่ก็ยังไม่ได้ผล ทั้งสองเพจใช้ CA เดียวกันจึงไม่เป็นปัญหา ข้อเสนอแนะใด ๆ ? ขอบคุณ

9
การพิสูจน์ตัวตน HTTP พื้นฐานด้วย Node และ Express 4
ดูเหมือนว่าการใช้การตรวจสอบสิทธิ์ HTTP พื้นฐานกับ Express v3 นั้นไม่สำคัญ: app.use(express.basicAuth('username', 'password')); เวอร์ชัน 4 (ฉันใช้ 4.2) ได้ลบbasicAuthมิดเดิลแวร์ออกไปแล้วดังนั้นฉันจึงติดขัดเล็กน้อย ฉันมีรหัสต่อไปนี้ แต่ไม่ได้ทำให้เบราว์เซอร์แจ้งให้ผู้ใช้ป้อนข้อมูลรับรองซึ่งเป็นสิ่งที่ฉันต้องการ (และฉันคิดว่าวิธีการเดิมทำ): app.use(function(req, res, next) { var user = auth(req); if (user === undefined || user['name'] !== 'username' || user['pass'] !== 'password') { res.writeHead(401, 'Access invalid for user', {'Content-Type' : 'text/plain'}); res.end('Invalid credentials'); } else { …

11
ฉันจะระงับกล่องโต้ตอบการตรวจสอบสิทธิ์ของเบราว์เซอร์ได้อย่างไร
เว็บแอปพลิเคชันของฉันมีหน้าเข้าสู่ระบบที่ส่งข้อมูลรับรองการรับรองความถูกต้องผ่านการโทร AJAX หากผู้ใช้ป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้องทุกอย่างก็เรียบร้อย แต่หากไม่เป็นเช่นนั้นสิ่งต่อไปนี้จะเกิดขึ้น: เว็บเซิร์ฟเวอร์พิจารณาว่าแม้ว่าคำขอจะมีส่วนหัวการอนุญาตที่มีรูปแบบที่ดี แต่ข้อมูลประจำตัวในส่วนหัวจะไม่สามารถพิสูจน์ตัวตนได้สำเร็จ เว็บเซิร์ฟเวอร์ส่งคืนรหัสสถานะ 401 และมีส่วนหัว WWW-Authenticate อย่างน้อยหนึ่งรายการแสดงประเภทการรับรองความถูกต้องที่สนับสนุน เบราว์เซอร์ตรวจพบว่าการตอบสนองต่อการเรียกของฉันบนอ็อบเจ็กต์ XMLHttpRequest คือ 401 และการตอบสนองรวมถึงส่วนหัว WWW-Authenticate จากนั้นจะปรากฏกล่องโต้ตอบการตรวจสอบความถูกต้องเพื่อถามชื่อผู้ใช้และรหัสผ่านอีกครั้ง ทั้งหมดนี้ใช้ได้ดีจนถึงขั้นตอนที่ 3 ฉันไม่ต้องการให้กล่องโต้ตอบปรากฏขึ้นฉันต้องการจัดการการตอบสนอง 401 ในฟังก์ชันการโทรกลับ AJAX ของฉัน (ตัวอย่างเช่นการแสดงข้อความแสดงข้อผิดพลาดในหน้าล็อกอิน) แน่นอนว่าฉันต้องการให้ผู้ใช้ป้อนชื่อผู้ใช้และรหัสผ่านอีกครั้ง แต่ฉันต้องการให้พวกเขาเห็นแบบฟอร์มการเข้าสู่ระบบที่เป็นมิตรและมั่นใจของฉันไม่ใช่ค่าเริ่มต้นของเบราว์เซอร์ที่น่าเกลียด กล่องโต้ตอบการตรวจสอบสิทธิ์ บังเอิญฉันไม่สามารถควบคุมเซิร์ฟเวอร์ได้ดังนั้นการส่งคืนรหัสสถานะที่กำหนดเอง (เช่นอย่างอื่นที่ไม่ใช่ 401) จึงไม่ใช่ตัวเลือก มีวิธีใดบ้างที่ฉันสามารถระงับกล่องโต้ตอบการตรวจสอบสิทธิ์ได้ โดยเฉพาะอย่างยิ่งฉันสามารถระงับกล่องโต้ตอบที่จำเป็นในการตรวจสอบสิทธิ์ใน Firefox 2 หรือใหม่กว่าได้หรือไม่ มีวิธีใดในการระงับกล่องโต้ตอบConnect to [host]ใน IE 6 และใหม่กว่า แก้ไข ข้อมูลเพิ่มเติมจากผู้เขียน (18 ก.ย. ): ฉันควรเพิ่มว่าปัญหาที่แท้จริงของกล่องโต้ตอบการตรวจสอบสิทธิ์ของเบราว์เซอร์ที่ปรากฏขึ้นคือการให้ข้อมูลที่ไม่เพียงพอแก่ผู้ใช้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.