Στο crate 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, ορίστε ποιος συνεχίζει τις αιτήσεις σε παύση και ποιος απαντά στις προκλήσεις· μια αίτηση σε παύση που μένει άλυτη μπορεί να μπλοκάρει την πλοήγηση.

Αυτή η απλή ρύθμιση ελέγχου ταυτότητας στην καρτέλα προϋποθέτει την προβλεπόμενη πρόκληση proxy. Μια ροή με έλεγχο ταυτότητας άσχετου origin χρειάζεται ρητή οριοθέτηση της πρόκλησης αντί να επαναχρησιμοποιεί τον λογαριασμό του μεσάζοντα για κάθε διακομιστή. Ο περιορισμός του Chromium στο SOCKS5 για όνομα χρήστη και κωδικό είναι επίσης ξεχωριστός από αυτή τη διαδρομή ελέγχου ταυτότητας HTTP.

Σχετικά άρθρα