Pašreizējās Electron lietotnēs piešķiriet katram ar kontu saistītam WebContentsView savu nosaukto sesiju. Kad lietotne ir gatava, asinhronais palīgs galvenajā procesā var konfigurēt vienu skatu:

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();
});

Norādiet atsevišķu partitionName katram izolētajam kontam un glabājiet klausītāja mainīgos šī skata slēgumā. Nosaukums bez persist: izveido sesiju atmiņā. Tās pašas daļas atkārtota izmantošana apzināti atkārtoti izmanto tās sesijas stāvokli.

Pievienojiet skatu esošajam logam un pārvietojieties tikai pēc tam, kad tā starpniekserveris un apstrādātājs ir gatavi. Kods atbilst pašreizējam login notikuma līgumam, tostarp firstAuthAttempt, un atceļ noraidīto atkārtoto mēģinājumu, nevis bezgalīgi atkārtoti sūta to pašu kontu.

Apstrādātājs pārbauda, vai izaicinājums nāk no paredzētā Basic HTTP starpniekservera. Tīmekļa vietnes pieteikšanās šiem datiem nav derīga.

Starpniekservera noteikumi izvēlas galapunktu; login nodrošina kontu. PAC faili un manuālie starpniekservera noteikumi paši nesatur šī callback paroli.

Šī ir HTTP starpniekservera autentifikācija. Tā nepievieno SOCKS5 autentifikāciju Chromium. Esošajiem sesijas savienojumiem arī vajadzīga parastā dzīves cikla apstrāde, kad maršruts vēlāk tiek mainīts.

Saistītie raksti