നിലവിലെ Electron ആപ്പുകളിൽ, അക്കൗണ്ടുമായി ബന്ധിപ്പിച്ച ഓരോ WebContentsView-നും അതിന്റേതായ പേരുള്ള സെഷൻ നൽകുക. ആപ്പ് തയ്യാറായ ശേഷം, പ്രധാന പ്രോസസ്സിലെ async സഹായി ഒരു കാഴ്ച കോൺഫിഗർ ചെയ്യാം:

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

ഓരോ വേർതിരിച്ച അക്കൗണ്ടിനും വെവ്വേറെ partitionName നൽകി ലിസണർ വേരിയബിളുകൾ ആ കാഴ്ചയുടെ സ്വന്തം closure-ൽ സൂക്ഷിക്കുക. persist: ഇല്ലാത്ത പേര് മെമ്മറിയിലെ സെഷൻ സൃഷ്ടിക്കുന്നു. അതേ പാർട്ടീഷൻ വീണ്ടും ഉപയോഗിക്കുന്നത് അതിന്റെ സെഷൻ അവസ്ഥ മനഃപൂർവ്വം വീണ്ടും ഉപയോഗിക്കുന്നു.

കാഴ്ച നിലവിലുള്ള വിൻഡോയിൽ ഘടിപ്പിച്ച് അതിന്റെ പ്രോക്സിയും ഹാൻഡ്ലറും തയ്യാറായ ശേഷം മാത്രം നാവിഗേറ്റ് ചെയ്യുക. കോഡ് നിലവിലെ login ഇവന്റ് കരാർ ലക്ഷ്യമിടുന്നു, firstAuthAttempt ഉൾപ്പെടെ, നിരസിക്കപ്പെട്ട ആവർത്തിച്ചുള്ള ശ്രമം അതേ അക്കൗണ്ട് അനന്തമായി വീണ്ടും അയക്കുന്നതിന് പകരം റദ്ദാക്കുന്നു.

ഹാൻഡ്ലർ പരിശോധിക്കുന്നത് ചലഞ്ച് ഉദ്ദേശിച്ച Basic HTTP പ്രോക്സിയിൽ നിന്നാണെന്നാണ്. ഒരു വെബ്സൈറ്റിന്റെ ലോഗിൻ ഈ ക്രെഡൻഷ്യലുകൾക്ക് യോഗ്യമല്ല.

പ്രോക്സി നിയമങ്ങൾ എൻഡ്പോയിന്റ് തിരഞ്ഞെടുക്കുന്നു; login അക്കൗണ്ട് നൽകുന്നു. PAC ഫയലുകളും മാനുവൽ പ്രോക്സി നിയമങ്ങളും ഈ callback-ന്റെ പാസ്വേഡ് സ്വയം വഹിക്കുന്നില്ല.

ഇത് HTTP പ്രോക്സി പ്രാമാണീകരണമാണ്. ഇത് Chromium-ലേക്ക് SOCKS5 പ്രാമാണീകരണം ചേർക്കുന്നില്ല. പിന്നീട് റൂട്ട് മാറുമ്പോൾ നിലവിലുള്ള സെഷൻ കണക്ഷനുകൾക്കും അവയുടെ സാധാരണ ലൈഫ്സൈക്കിൾ കൈകാര്യം ആവശ്യമാണ്.

അനുബന്ധ ലേഖനങ്ങൾ