代理认证和节点请求
Proxy Authentication and node request
我正在尝试使用请求通过 https 向网站发送获取请求。但是,我在代理后面,需要身份验证才能使用。当我尝试添加身份验证时,它无法连接到该站点。
我已经尝试在代理 url 中添加身份验证,例如:
var proxyUrl = "http://" + 'user' + ":" + 'password' + "@" + 'url:8080';
var request = require('request').defaults({proxy: proxyUrl});
我也尝试将授权添加到 header 但是这也有同样的问题
headers: {
'Proxy-Authorization': new Buffer('user:password').toString('base64')
}
似乎代理返回了身份验证响应,但是请求发送似乎在那之后发送了任何东西,所以它实际上并没有登录。我需要添加更多配置吗?
原来我们使用的代理使用的是 NTLM 身份验证。因此,为了进行身份验证,我必须使用 NTLM 协议而不是 Basic。我将研究使用 Proxing-agent to do this authentication. Or as mentioned by robertklep 有一些选项可以使用 NTLM 直接向服务器进行身份验证。
设法使用 NTLM.js from the node-proxying-agent and request using the following description of the protocol 实现了这一点。
我正在尝试使用请求通过 https 向网站发送获取请求。但是,我在代理后面,需要身份验证才能使用。当我尝试添加身份验证时,它无法连接到该站点。
我已经尝试在代理 url 中添加身份验证,例如:
var proxyUrl = "http://" + 'user' + ":" + 'password' + "@" + 'url:8080';
var request = require('request').defaults({proxy: proxyUrl});
我也尝试将授权添加到 header 但是这也有同样的问题
headers: {
'Proxy-Authorization': new Buffer('user:password').toString('base64')
}
似乎代理返回了身份验证响应,但是请求发送似乎在那之后发送了任何东西,所以它实际上并没有登录。我需要添加更多配置吗?
原来我们使用的代理使用的是 NTLM 身份验证。因此,为了进行身份验证,我必须使用 NTLM 协议而不是 Basic。我将研究使用 Proxing-agent to do this authentication. Or as mentioned by robertklep 有一些选项可以使用 NTLM 直接向服务器进行身份验证。
设法使用 NTLM.js from the node-proxying-agent and request using the following description of the protocol 实现了这一点。