У Rust-крейті 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, визначте, хто продовжує призупинені запити і хто відповідає на запити автентифікації; невирішений призупинений запит може зупинити перехід.

Ця проста автентифікація на вкладці розрахована на передбачуваний запит проксі. Робочий процес з автентифікацією іншого origin потребує явного обмеження області запиту, а не повторного використання облікового запису посередника для кожного сервера. Обмеження Chromium у SOCKS5 щодо імені користувача й пароля також відокремлене від цього шляху HTTP-автентифікації.

Схожі статті