Electron-ийн харагдацууд тусдаа HTTP прокси бүртгэлтэй байж болно
WebContentsView бүрт бүртгэлд тохирсон сессийг үүсгэж, зөвхөн тухайн харагдацын тохирох Basic прокси сорилтод хариулна.
Одоогийн Electron програмуудад бүртгэлтэй холбоотой WebContentsView бүрд өөрийн нэртэй сессийг өгнө. Програм бэлэн болсны дараа үндсэн процессийн async туслах нэг харагдацыг тохируулж болно:
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();
});
Тусгаарлагдсан бүртгэл бүрд өөр partitionName өгч, сонсогчийн хувьсагчдыг тухайн харагдацын closure дотор байлгана. persist:гүй нэр санах ойн сессийг үүсгэдэг. Ижил хуваалтыг дахин ашиглах нь түүний сессийн төлөвийг санаатайгаар дахин ашиглана.
Харагдацыг одоо байгаа цонхонд хавсаргаж, прокси болон зохицуулагч нь бэлэн болсны дараа л шилжинэ. Код нь одоогийн login үйл явдлын гэрээг, түүний дотор firstAuthAttempt-ыг зориулж, татгалзсан давтан оролдлогыг ижил бүртгэлийг эцэс төгсгөлгүй дахин илгээхийн оронд цуцална.
Зохицуулагч сорилт нь зориулсан Basic HTTP проксиноос ирсэн эсэхийг шалгана. Вэбсайтын нэвтрэлт эдгээр мэдээлэлд тохирохгүй.
Прокси дүрмүүд төгсгөлийн цэгийг сонгоно; login бүртгэлийг өгнө. PAC файлууд болон гарын прокси дүрмүүд нь энэ callback-ийн нууц үгийг өөрсдөө агуулдаггүй.
Энэ бол HTTP прокси баталгаажуулалт юм. Энэ нь Chromium-д SOCKS5 баталгаажуулалт нэмэхгүй. Одоо байгаа сессийн холболтууд ч дараа нь маршрут өөрчлөгдөхөд ердийн амьдралын мөчлөгийн зохицуулалт шаарддаг.