د 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: نوم په حافظه کې غونډه جوړوي. د هماغه برخې بیا کارول په قصدی توګه د هغې د غونډې حالت بیا کاروي.
لید له موجودې کړکۍ سره وتړئ او یوازې هغه وخت وګرځئ چې پراکسي او سمبالونکی یې چمتو وي. کوډ د firstAuthAttempt په ګډون د login پېښې اوسني تړون هدف ګرځوي او رد شوې تکراري هڅه لغوه کوي پرځای د دې چې هماغه حساب بې پایه بیا واستوي.
سمبالونکی ګوري چې ننګونه د هدف شوي Basic HTTP پراکسي څخه راغلې ده. د وېبسایټ ننوتل د دغو معلوماتو لپاره وړ نه دي.
د پراکسي قواعد پای ټکی ټاکي؛ login حساب برابروي. PAC فایلونه او لاسي پراکسي قواعد پخپله د دې callback پټنوم نه لري.
دا د HTTP پراکسي تصدیق دی. دا Chromium ته SOCKS5 تصدیق نه زیاتوي. موجوده غونډې اړیکې هم وروسته د لارې بدلون پر مهال خپل عادي ژوند دورې سمبالښت ته اړتیا لري.