Electron-Views kënnen eegen HTTP-Proxy-Konten hunn
Erstellt pro WebContentsView eng kontospezifesch Sëtzung a beäntwert nëmmen déi passend Basic-Proxy-Herausfuerderung vun där Vue.
An aktuelle Electron-Anwendungen gitt all kontospezifescher WebContentsView seng eege benannt Sëtzung. Wann d'App prett ass, kann en async Hëllefsprogramm am Haaptprozess eng Vue konfiguréieren:
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();
});
Gitt fir all isoléierte Kont een eegene partitionName a behält d'Lauschtervariabelen am Closure vun där Vue. En Numm ouni persist: erstellt eng Sëtzung am Späicher. D'Weiderbenotze vun der selwechter Partitioun benotzt bewosst hire Sëtzungszoustand weider.
Befestegt d'Vue un dat bestoend Fënster a navigéiert eréischt, wann hire Proxy an hire Handler prett sinn. De Code riicht sech no dem aktuelle login-Eventkontrakt, inklusiv firstAuthAttempt, a brécht eng ofgelehnt widderholl Versuch of, amplaz de selwechte Kont onendlech erëm ze schécken.
Den Handler kontrolléiert, datt d'Herausfuerderung vum virgesinnene Basic HTTP-Proxy kënnt. D'Login vun enger Websäit ass net gëlteg fir dës Umeldungsinformatiounen.
Proxy-Regelen wielen den Endpunkt; login liwwert de Kont. PAC-Dateien a manuell Proxy-Regelen droen d'Passwuert vun dësem Callback net selwer.
Dëst ass HTTP-Proxy-Authentifikatioun. Et füügt Chromium keng SOCKS5-Authentifikatioun derbäi. Bestoend Sëtzungsverbindungen brauchen och hir üblech Liewenszyklusbehandlung, wann eng Route méi spéit geännert gëtt.