Я пытаюсь обработать прокси-аутентификацию через расширения Chrome.
С одной стороны, у меня есть расширение Chrome (со всеми установленными разрешениями), которое отправляет запрос CONNECT с обработчиком onAuthRequired (background.js)
chrome.webRequest.onAuthRequired.addListener(
(details, callback) => {
console.log('onAuthRequired', details) // <- this has never been displayed
callback({
authCredentials: {
username: 'someid',
password: 'somepwd'
}
})
},{
urls: ['<all_urls>']
},
['asyncBlocking']
)
const config = {
mode: "pac_script",
pacScript: {
data: "function FindProxyForURL(url, host) {\n if (shExpMatch(host, \"*.pandora.com\"))\n return 'PROXY 127.0.0.1:8124';\n return 'DIRECT';\n }"
}
}
chrome.proxy.settings.set({
value: config,
scope: 'regular',
}, function(){})
С другой стороны, у меня есть прокси-сервер NodeJS, который всегда отправляет код состояния 407, как описано в спецификации
const http = require('http');
const proxy = http.createServer()
proxy.on('connect', (req, clientSocket, head) => {
clientSocket.write('HTTP/1.1 407 Proxy Authentication Required')
clientSocket.write('Proxy-Authenticate: Basic realm="Access to site"\r\n\n')
});
proxy.listen(8124)
Наконец, браузер возвращает ERR_PROXY_AUTH_UNSUPPORTED, что означает, что код состояния отправлен правильно...
Дело в том, что onAuthRequired никогда не срабатывает, кто-нибудь может сказать мне, почему?
заранее спасибо