对于Web应用程序,我试图从需要基本身份验证的RESTful服务中提取一些数据。NodeJS`request`返回“需要身份验证”。在HTTPS上GET
到目前为止,我有以下代码:
var req = request({
auth: 'Basic aGVsbG8gd29ybGQ=', //base64 encoded credentials "hello world"
url: url.resolve("https://rest.someurl.com", "/url/to/data.xml"),
method: "GET",
jar: true
}, function(err, res, body) {
if(err) return util.err(err);
console.log(body);
});
当我渡过难关邮差服务这个URL设置认证头得当返回数据。另外,当我删除auth
选项并直接在URL中输入用户名/密码时,我也会正常返回数据。我没有得到任何数据的唯一情况是上面的代码。
我上面的代码出现了什么问题,或者我应该添加什么来使其工作?
我宁愿不直接在URL中输入用户名和密码,因为它应该通过标头传递。 – 2015-02-11 08:55:53
它不会在URL中传递。阅读基本身份验证的工作原理。 'request'将取得凭证,base64将它们按照HTTP规范进行编码,并在向服务器发送请求时将它们传递到“Authorization”标题中。从安全角度来看,它与您的原始代码完全相同(除了它将实际工作)。 – 2015-02-11 15:01:38