ప్రాక్సీ ప్రొఫైల్‌లను మార్చడం ఎంచుకున్న ఖాతాను మార్చాలి, మరో onAuthRequired శ్రోతను జోడించడం కాదు. లేకపోతే పాత closures మునుపటి ఎంపిక ఖాతాతో ప్రతిస్పందిస్తూనే ఉండవచ్చు.

సేవా కార్మికుడి పై స్థాయిలో ఒక పేరున్న శ్రోతను నమోదు చేయండి. ఈవెంట్ వచ్చినప్పుడు ప్రస్తుత ఖాతాను చదవండి:

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'],
);

ఈ భాగం పొడిగింపు ఇప్పటికే ఎంచుకున్న HTTP ప్రాక్సీని selectedProxy కింద, సంఖ్యాత్మక పోర్ట్ మరియు దాని ఉద్దేశిత ఖాతాతో నిల్వ చేస్తుందని ఊహిస్తుంది. మానిఫెస్ట్‌కు webRequest, webRequestAuthProvider, storage మరియు అవసరమైన హోస్ట్ అనుమతులు కావాలి. ప్రాక్సీ ఎంపికకే proxy అనుమతి కూడా కావాలి.

నమోదు సమకాలీకంగా జరుగుతుంది. Chrome కు పంపడానికి ఇన్‌స్టాల్ చేసిన శ్రోత ఉన్న తర్వాత కాల్‌బ్యాక్ లోపల నిల్వ చదవబడుతుంది. ప్రారంభ storage promise పరిష్కరించబడిన తర్వాత మాత్రమే నమోదు చేయడం మేల్కొలుపు అంతరాన్ని సృష్టిస్తుంది.

విడుదలకు ముందు తిరస్కరణ పరిమితిని జోడించండి

భాగం నమోదు మరియు ఖాతా ఎంపికను చూపుతుంది. తిరస్కరించిన పాస్‌వర్డ్ అనంతంగా సమర్పించబడకుండా ఉండేందుకు ప్రతి అభ్యర్థనకు పరిమిత పునఃప్రయత్న రికార్డును జోడించండి. పూర్తయినప్పుడు లేదా విఫలమైనప్పుడు ఆ రికార్డును శుభ్రం చేయండి. కార్మికుడు ఆగినప్పుడు worker globals మాయమవవచ్చు, కాబట్టి మేల్కొలుపుల మధ్య అవసరమైన స్థితిని తగిన పొడిగింపు నిల్వ ప్రాంతంలో ఉంచండి.

storage.session బ్రౌజర్ సెషన్ లోపల కార్మికుడి పునఃప్రారంభాలను తట్టుకుంటుంది; ఇది బ్రౌజర్ పునఃప్రారంభాల మధ్య శాశ్వత ఖాతా నిల్వ కాదు. ఎంచుకున్న ఖాతా అందుబాటులో లేనప్పుడు పొడిగింపు ఏమి చేస్తుందో నిర్వచించండి.

isProxy మరియు challenger తనిఖీలు సంబంధం లేని వెబ్‌సైట్ సవాలుకు ఈ ఖాతా లభించకుండా నిరోధిస్తాయి. బ్రౌజర్ ఈవెంట్‌ను ఎప్పుడూ పంపకపోతే, శ్రోత శుభ్రత మాత్రమే దాన్ని ఉత్పత్తి చేయలేదు: వాస్తవ అభ్యర్థన, అనుమతులు మరియు బ్రౌజర్ ప్రవర్తనను విడిగా పరిశీలించండి.

సంబంధిత వ్యాసాలు