Ukushintsha amaphrofayili e-proxy kufanele kushintshe i-akhawunti ekhethiwe, hhayi ukwengeza omunye umlaleli we-onAuthRequired. Uma kungenjalo ama-closures amadala angase aqhubeke ephendula nge-akhawunti yokukhetha kwangaphambilini.

Bhalisa umlaleli oyedwa onegama ezingeni eliphezulu le-service worker. Funda i-akhawunti yamanje uma umcimbi ufika:

function answerProxyChallenge(details, reply) {
  if (!details.isProxy) {
    reply({});
    return;
  }
  chrome.storage.session.get('selectedProxy').then(({selectedProxy: p}) => {
    if (!p || details.challenger.host !== p.host ||
        details.challenger.port !== p.port) {
      reply({});
      return;
    }
    reply({authCredentials: {username: p.username, password: p.password}});
  }).catch(() => reply({cancel: true}));
}

chrome.webRequest.onAuthRequired.addListener(
  answerProxyChallenge,
  {urls: ['<all_urls>']},
  ['asyncBlocking'],
);

Lesi siqeshana sicabanga ukuthi isandiso sesivele sigcina i-proxy ye-HTTP ekhethiwe ngaphansi kwe-selectedProxy, ngephothi eliyinombolo kanye ne-akhawunti ehlosiwe. I-manifest idinga i-webRequest, i-webRequestAuthProvider, i-storage kanye nezimvume zomsingathi ezidingekayo. Ukukhethwa kwe-proxy ngokwako nakho kudinga imvume ye-proxy.

Ukubhaliswa kwenzeka ngasikhathi sinye. Isitoreji sifundwa ngaphakathi kwe-callback, ngemva kokuba i-Chrome inomalaleli ofakiwe wokuthumela kuye. Ukubhalisa kuphela ngemva kokuxazululwa kwesithembiso sokuqala se-storage kwakha igebe lokuvuka.

Engeza umkhawulo wokwenqaba ngaphambi kokukhishwa

Isiqeshana sibonisa ukubhaliswa nokukhethwa kwe-akhawunti. Engeza irekhodi lokuzama kabusha elinomkhawulo esicelweni ngasinye ukuze iphasiwedi enqatshiwe ingathunyelwa ngokungapheli. Hlanza lelo rekhodi lapho kuqedwa noma kuhluleka. Ama-globals omsebenzi angase anyamalale lapho umsebenzi ema, ngakho gcina isimo esidingekayo phakathi kokuvuka endaweni efanele yesitoreji sesandiso.

i-storage.session iyasinda ekuqaliseni kabusha komsebenzi ngaphakathi kwesikhathi sesiphequluli; akuyona indawo yokugcina i-akhawunti unomphela phakathi kokuqalisa kabusha kwesiphequluli. Chaza ukuthi isandiso senzani uma ingekho i-akhawunti ekhethiwe etholakalayo.

Ukuhlolwa kwe-isProxy ne-challenger kuvimbela inselelo evela kuwebhusayithi engahlobene ukuthi ithole le akhawunti. Uma isiphequluli singalokothi siyithumele umcimbi, ukuhlanza umlaleli kuphela akukwazi ukuwukhiqiza: hlola isicelo sangempela, izimvume kanye nokuziphatha kwesiphequluli ngokwahlukana.

Izihloko ezihlobene