Il-veduti Electron jistgħu jkollhom kontijiet HTTP proxy separati
Oħloq sessjoni speċifika għall-kont għal kull WebContentsView u wieġeb biss għall-isfida Basic tal-proxy li taqbel ma' dik il-veduta.
Fl-applikazzjonijiet Electron tal-lum, agħti lil kull WebContentsView marbuta ma' kont is-sessjoni msemmija tagħha stess. Ladarba l-app tkun lesta, assistent async fil-proċess prinċipali jista' jikkonfigura veduta waħda:
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();
});
Ipprovdi partitionName distint għal kull kont iżolat u żomm il-varjabbli tas-semmiegħ fil-closure ta' dik il-veduta. Isem mingħajr persist: joħloq sessjoni fil-memorja. L-użu mill-ġdid tal-istess partizzjoni jerġa' juża deliberatament l-istat tas-sessjoni tagħha.
Qabbad il-veduta mat-tieqa eżistenti u naviga biss meta l-proxy u l-handler tagħha jkunu lesti. Il-kodiċi jimmira lejn il-kuntratt tal-avveniment login attwali, inkluż firstAuthAttempt, u jikkanċella tentattiv ripetut miċħud minflok ma jerġa' jibgħat l-istess kont bla tmiem.
Il-handler jivverifika li l-isfida ġejja mill-proxy Basic HTTP maħsub. Id-dħul ta' sit web mhuwiex eliġibbli għal dawk il-kredenzjali.
Ir-regoli tal-proxy jagħżlu l-endpoint; login jipprovdi l-kont. Il-fajls PAC u r-regoli tal-proxy manwali ma jġorrux huma stess il-password ta' dan il-callback.
Dan huwa awtentikazzjoni tal-proxy HTTP. Ma jżidx awtentikazzjoni SOCKS5 ma' Chromium. Il-konnessjonijiet tas-sessjoni eżistenti wkoll jeħtieġu l-immaniġġjar tas-soltu taċ-ċiklu tal-ħajja meta rotta tinbidel aktar tard.