U aktuelnim Electron aplikacijama svakom WebContentsView-u vezanom za račun dajte vlastitu imenovanu sesiju. Nakon što aplikacija bude spremna, asinhroni pomoćnik u glavnom procesu može konfigurisati jedan prikaz:

const routeSession = session.fromPartition(partitionName);
await routeSession.setProxy({
  mode: 'fixed_servers',
  proxyRules: `http://${proxyHost}:${proxyPort}`,
});
const view = new WebContentsView({
  webPreferences: { session: routeSession },
});
view.webContents.on('login', (event, details, authInfo, callback) => {
  if (!authInfo.isProxy
      || authInfo.scheme.toLowerCase() !== 'basic'
      || authInfo.host !== proxyHost
      || authInfo.port !== proxyPort) return;
  event.preventDefault();
  if (details.firstAuthAttempt) callback(proxyUser, proxyPassword);
  else callback();
});

Dostavite poseban partitionName za svaki izolovani račun i držite varijable osluškivača u closure-u tog prikaza. Ime bez persist: stvara sesiju u memoriji. Ponovno korištenje iste particije namjerno ponovno koristi njeno stanje sesije.

Pričvrstite prikaz na postojeći prozor i navigirajte tek kada njegov proxy i rukovalac budu spremni. Kod cilja trenutni ugovor login događaja, uključujući firstAuthAttempt, i otkazuje odbijeni ponovljeni pokušaj umjesto da beskonačno ponovo šalje isti račun.

Rukovalac provjerava da izazov dolazi od predviđenog Basic HTTP proxyja. Prijava na web stranicu nije podobna za te akreditive.

Proxy pravila biraju krajnju tačku; login dostavlja račun. PAC datoteke i ručna proxy pravila sama po sebi ne nose lozinku ovog callback-a.

Ovo je HTTP proxy autentifikacija. Ona ne dodaje SOCKS5 autentifikaciju u Chromium. Postojeće sesijske veze također trebaju uobičajeno upravljanje životnim ciklusom kada se ruta kasnije promijeni.

Povezani članci