Express.js で http 基本認証を使用する nodejs アプリがあります。
このアプリでは、外部 Web ページに対して http.get 要求を行い、html を読み込んで解析します。
基本認証を使用するhttp.get(url, function(){})
と、外部ホストへの各リクエストでエラーが発生します:「許可されていません」。基本認証を削除すると、正常に機能します。
自分のサーバーだけがこの認証を持っているのに、なぜ私が公開リソースで無許可なのか知っている人はいますか?
例 (疑似コード):
Express Basic 認証を使用すると、google.com から本文として「Unauthorized」が表示されます。認証なしで、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);
});