ใน Rust crate headless_chrome การตั้งค่าเริ่มต้นของเบราว์เซอร์เลือกตัวกลาง HTTP ตัวจัดการ Fetch ของแท็บจะให้บัญชีเมื่อ Chromium ขอ:

let proxy = "http://proxy.example:8080";
let options = headless_chrome::LaunchOptions::default_builder()
    .proxy_server(Some(proxy))
    .build()?;
let browser = headless_chrome::Browser::new(options)?;
let tab = browser.new_tab()?;

tab.enable_fetch(None, Some(true))?;
tab.authenticate(Some(proxy_user), Some(proxy_password))?;
tab.navigate_to("https://www.example.org/")?;
tab.wait_until_navigated()?;

ฟังก์ชันที่ห่อหุ้มจะส่งต่อข้อผิดพลาด และ proxy_user กับ proxy_password เป็นค่า String จากคอนฟิกบัญชีที่มีอยู่ของแอปพลิเคชัน ตั้งค่าการยืนยันตัวตนก่อนที่การนำทางจะทำให้เกิดการท้าทาย

อาร์กิวเมนต์ที่สองของ enable_fetch เปิดใช้งานเหตุการณ์การยืนยันตัวตน Chromium ไม่ถือว่าข้อมูลผู้ใช้ที่ฝังใน --proxy-server เป็นการแลกเปลี่ยนข้อมูลรับรองนี้

ให้เบราว์เซอร์และแท็บคงอยู่ตลอดการทำงาน หากติดตั้งการดักจับ Fetch แบบกำหนดเองด้วย ให้กำหนดว่าใครจะดำเนินการต่อคำขอที่หยุดไว้และใครจะตอบการท้าทาย คำขอที่หยุดไว้ซึ่งไม่ได้รับการแก้ไขอาจทำให้การนำทางค้าง

การยืนยันตัวตนบนแท็บแบบง่ายนี้ถือว่าการท้าทายพร็อกซีเป็นไปตามที่ตั้งใจ เวิร์กโฟลว์ที่มีการยืนยันตัวตนของต้นกำเนิดอื่นต้อง กำหนดขอบเขตการท้าทายอย่างชัดเจน แทนการใช้บัญชีตัวกลางซ้ำสำหรับทุกเซิร์ฟเวอร์ ข้อจำกัด SOCKS5 ของ Chromium เกี่ยวกับชื่อผู้ใช้และรหัสผ่านก็แยกจากเส้นทางการยืนยันตัวตน HTTP นี้

บทความที่เกี่ยวข้อง