ब्राउज़र एक्सटेंशन को दो अलग जगहों से प्रमाणीकरण चुनौतियाँ मिल सकती हैं: अनुरोध ले जाने वाला प्रॉक्सी और गंतव्य वेबसाइट। दोनों को स्वतः एक ही खाता नहीं मिलना चाहिए।

Chrome के webRequest.onAuthRequired इवेंट में उपयोगी विभेदक isProxy है। केवल प्रॉम्प्ट हटाने के लिए उस जाँच को हटाने वाला कॉलबैक प्रॉक्सी क्रेडेंशियल ऑरिजिन चुनौती को देना शुरू कर सकता है।

जिस प्रॉक्सी पर भरोसा करना है उससे मिलाएँ

isProxy जाँचना शुरुआत है। हैंडलिंग को अपेक्षित प्रॉक्सी चैलेंजर और अनुरोध संदर्भ तक भी सीमित करें। कई एंडपॉइंट प्रबंधित करने वाले एक्सटेंशन को उस एंडपॉइंट का खाता चुनना चाहिए, हर चुनौती के लिए एक वैश्विक पासवर्ड नहीं।

यह न मानें कि प्रॉक्सी रूट सेट करना और उसका लॉगिन संभालना एक अनुमति या एक API कॉल है। Chrome इन्हें अलग-अलग दस्तावेज़ित करता है। इवेंट डेटा और प्रमाणीकरण अनुमतियों के लिए वर्तमान webRequest संदर्भ का उपयोग करें। Manifest V3 श्रोता पंजीकरण का उदाहरण कॉलबैक के भीतर समकालिक पंजीकरण और खाता चयन दिखाता है।

मैनिफेस्ट जनरेशन जाँचें

प्रयोगात्मक WebRequest API का उल्लेख करने वाले उदाहरण पुराने एक्सटेंशन रिलीज़ से आते हैं। वर्तमान अनुमति आवश्यकताएँ एक्सटेंशन के मैनिफेस्ट जनरेशन और डिप्लॉयमेंट मॉडल पर निर्भर करती हैं। विशेष रूप से, प्रमाणीकरण हैंडलिंग का अपना समर्थित अनुमति पथ है; एक अप्रचलित ब्लॉकिंग श्रोता उदाहरण यह सिद्ध करने के लिए पर्याप्त नहीं है कि Manifest V3 एक्सटेंशन इसे बिना बदलाव के चला सकता है।

सही हैंडलर को उन्हीं अस्वीकृत क्रेडेंशियल को अनिश्चित काल तक दोबारा आज़माने से भी बचना चाहिए। खाता देने के बाद आने वाली दूसरी चुनौती को जाँच के सबूत के रूप में लें, न कि पासवर्ड को हमेशा दोबारा चलाने के अनुरोध के रूप में।

क्रेडेंशियल एक्सटेंशन के उपयुक्त संरक्षित हैंडलिंग पथ में ही रहने चाहिए। उन्हें PAC फ़ाइल में प्रकाशित न करें और वितरित नमूने में हार्डकोड न करें। लक्ष्य संकीर्ण दायरे का प्रॉक्सी लॉगिन है, न कि हर प्रमाणीकरण चुनौती का एक ही रहस्य से उत्तर देने वाला ब्राउज़र-व्यापी नियम।

संबंधित लेख