Electron-sýnir kunnu hava serstakar HTTP-proxykontur
Ger eina kontuspesifika sessjón fyri hvørja WebContentsView og svara bert tí samsvarandi Basic-proxy-avbjóðingini hjá tí sýnini.
Í núverandi Electron-forritum skalt tú geva hvørjari kontuspesifikari WebContentsView sína egnu nevndu sessjón. Tá forritið er klárt, kann ein async hjálpari í høvuðsprosessinum seta eitt sýn upp:
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();
});
Lat eitt serstakt partitionName fyri hvørja isoleraða kontu og halt lyttarvarablarnar í closure hjá tí sýnini. Eitt navn uttan persist: ger eina sessjón í minninum. At brúka sama partit aftur brúkar viljandi sessjónsstøðuna hjá tí.
Fest sýnið á verandi vindeyga og far bert víðari, tá proxy og handler eru klár. Kotan fylgir verandi login-hendingarsáttmálanum, eisini firstAuthAttempt, og avlýsir eina avvísta endurtøku í staðin fyri at senda somu kontuna endalaust aftur.
Handlerin eftirkannar, at avbjóðingin kemur frá tí ætlaða Basic HTTP-proxyinum. Innritan á ein heimasíðu er ikki galdandi fyri hesi upplýsingar.
Proxyreglur velja endapunkin; login veitir kontuna. PAC-fílur og hondligar proxyreglur bera ikki sjálvar loyniorðið hjá hesi callback.
Hetta er HTTP-proxy-autentisering. Hon leggur ikki SOCKS5-autentisering at Chromium. Verandi sessjónssambond tørva eisini vanliga lívsskeiðshandfaring, tá ein rúta verður broytt seinni.