Если у вас есть Basic http схема аутентификации , вам нужно сделать строку base64 myuser:mypassword
, а затем добавить «Basic» в начале.Это значение заголовка Proxy-Authorization , вот пример:
var Http = require('http');
var req = Http.request({
host: 'myproxy.com.zx',
port: 8080,
headers:{"Proxy-Authorization": "Basic bXl1c2VyOm15cGFzc3dvcmQ="},
method: 'GET',
path: 'http://www.google.com/'
}, function (res) {
res.on('data', function (data) {
console.log(data.toString());
});
});
req.end();
В nodejs вы можете использовать Buffer для кодирования
var encodedData = Buffer.from('myuser:mypassword').toString('base64');
console.log(encodedData);
Например, в браузерах вы можете кодировать в base64 с помощью btoa () , что полезно при запросах ajax в браузере без настроек прокси, выполняющих запрос с использованием прокси.
var encodedData = btoa('myuser:mypassword')
console.log(encodedData);
Как определить, какая схема принимает прокси-сервер?
Если у нас не настроен настраиваемый DNS (это будетбросить что-то вроде ERR_NAME_NOT_RESOLVED), когда мы выполняем запрос, ответ (код 407) должен сообщить в заголовках ответа, какую схему аутентификации http использует прокси.