我有一个 nodejs 应用程序,它使用 express.js 中的 http 基本身份验证。
在这个应用程序中,我向外部网页发出 http.get 请求以加载和解析 html。
使用基本身份验证,我在http.get(url, function(){})
对外部主机的每个请求中都会收到一个错误:“未经授权”。如果我删除基本身份验证,它工作正常。
如果只有我自己的服务器具有此身份验证,任何人都知道为什么我在公共资源上未经授权?
例如(伪代码):
通过快速基本身份验证,我从 google.com 获得“未经授权”作为正文。没有身份验证,我得到了 html
var auth = express.basicAuth(function(user, pass, callback) {
var result = (user === 'john' && pass === 'doe') ? true : false;
callback(null, result);
});
app.configure(function(){
app.use("/", auth, function(next) { next(); });
app.use("/", express.static(__dirname+'/html'));
});
http.get('http://google.com', function(res) {
res.setEncoding('utf8');
var body = '';
res.on('data', function (chunk) {
body = body + chunk;
});
res.on('end', function() {
cb(body);
});
}).on('error', function(err) {
cb('error', err);
});