Praegustes Electroni rakendustes andke igale kontoga seotud WebContentsView-le oma nimega seanss. Kui rakendus on valmis, saab põhiprotsessi asünkroonne abiline ühe vaate konfigureerida:

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

Esitage iga isoleeritud konto jaoks eraldi partitionName ja hoidke kuulaja muutujad selle vaate sulgemises. Nimi ilma persist:-ta loob mälusisese seansi. Sama partitsiooni uuesti kasutamine kasutab teadlikult uuesti selle seansi olekut.

Kinnitage vaade olemasolevale aknale ja navigeerige alles siis, kui selle puhverserver ja käitleja on valmis. Kood järgib praegust login-sündmuse lepet, sealhulgas firstAuthAttempt, ja tühistab tagasilükatud korduskatse, selle asemel et sama kontot lõputult uuesti saata.

Käitleja kontrollib, et väljakutse pärineb kavandatud Basic HTTP-puhverserverilt. Veebisaidi sisselogimine ei sobi nende volituste jaoks.

Puhverserveri reeglid valivad lõpp-punkti; login annab konto. PAC-failid ja käsitsi puhverserveri reeglid ei kanna ise selle callbacki parooli.

See on HTTP-puhverserveri autentimine. See ei lisa Chromiumile SOCKS5-autentimist. Olemasolevad seansiühendused vajavad samuti tavalist elutsükli käsitlemist, kui marsruut hiljem muutub.

Seotud artiklid