Maonyesho ya Electron yanaweza kuwa na akaunti tofauti za HTTP proxy
Unda kipindi maalum cha akaunti kwa kila WebContentsView na ujibu tu changamoto ya Basic proxy inayolingana na mwonekano huo.
Katika programu za Electron za sasa, ipe kila WebContentsView inayohusiana na akaunti kipindi chake chenye jina. Programu ikiwa tayari, msaidizi wa async katika mchakato mkuu anaweza kusanidi mwonekano mmoja:
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();
});
Toa partitionName tofauti kwa kila akaunti iliyotengwa na weka vigezo vya msikilizaji katika closure ya mwonekano huo. Jina lisilo na persist: huunda kipindi kwenye kumbukumbu. Kutumia tena kizigeu kile kile kwa makusudi hutumia tena hali ya kipindi chake.
Ambatisha mwonekano kwenye dirisha lililopo na uendelee tu baada ya proxy na kishikizi chake kuwa tayari. Msimbo unalenga mkataba wa sasa wa tukio la login, ikiwa ni pamoja na firstAuthAttempt, na hughairi jaribio lililorudiwa lililokataliwa badala ya kutuma tena akaunti hiyo bila kikomo.
Kishikizi hukagua kwamba changamoto inatoka kwa Basic HTTP proxy iliyokusudiwa. Kuingia kwenye tovuti hakustahili vitambulisho hivyo.
Sheria za proxy huchagua mwisho; login hutoa akaunti. Faili za PAC na sheria za proxy za mkono hazibeba nywila ya callback hii zenyewe.
Huu ni uthibitishaji wa HTTP proxy. Hauongezi uthibitishaji wa SOCKS5 kwenye Chromium. Miunganisho iliyopo ya kipindi pia inahitaji usimamizi wake wa kawaida wa mzunguko wa maisha mwendo unapobadilishwa baadaye.