我有一個nodejs應用程序,它使用express.js中的http基本認證。通過http基本認證(node.js)從應用程序獲取請求
在這個程序中,我向外部網頁發出一個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);
});
提供一些代碼,請。 – gustavohenke
對於某些頁面/資源,服務器可以允許未經身份驗證的請求。但提供不正確/無效的憑據會導致請求失敗。你可以檢查你的憑證是否正確。 – user568109