Gall ffenestri Electron gael cyfrifon procsi HTTP ar wahân
Crëwch sesiwn sy'n benodol i gyfrif ar gyfer pob WebContentsView ac atebwch yn unig her Basic y procsi sy'n cyfateb i'r olygfa honno.
Mewn rhaglenni Electron cyfredol, rhowch sesiwn a enwir iddo'i hun i bob WebContentsView sy'n gysylltiedig â chyfrif. Ar ôl i'r rhaglen fod yn barod, gall cynorthwyydd async yn y prif broses ffurfweddu un olygfa:
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();
});
Darparwch partitionName ar wahân ar gyfer pob cyfrif ynysig a chadwch newidynnau'r gwrandäwr yn closure yr olygfa honno. Mae enw heb persist: yn creu sesiwn yn y cof. Mae ailddefnyddio'r un rhaniad yn ailddefnyddio ei gyflwr sesiwn yn fwriadol.
Atodwch yr olygfa i'r ffenestr bresennol a llywiwch dim ond ar ôl i'w phroesi a'i thriniwr fod yn barod. Mae'r cod yn targedu contract digwyddiad login cyfredol, gan gynnwys firstAuthAttempt, ac yn canslo ymgais ailadroddus a wrthodwyd yn lle ailgyflwyno'r un cyfrif yn ddiddiwedd.
Mae'r triniwr yn gwirio bod yr her yn dod o'r procsi Basic HTTP a fwriadwyd. Nid yw mewngofnodi gwefan yn gymwys ar gyfer y manylion hyn.
Mae rheolau procsi yn dewis y pen draw; mae login yn cyflenwi'r cyfrif. Nid yw ffeiliau PAC a rheolau procsi â llaw yn cario cyfrinair y callback hwn eu hunain.
Dyma uwthentigeiddio procsi HTTP. Nid yw'n ychwanegu uwthentigeiddio SOCKS5 at Chromium. Mae angen trin cylch bywyd arferol ar gysylltiadau sesiwn presennol hefyd pan newidir llwybr yn ddiweddarach.