Мой сайт работает на узле и использует платформу Express.
Моя цель - настроить прокси для получения данных из API Yahoo Placefinder (потому что они не предлагают ответ JSONP).
Я хочу отправить запросы jquery ajax прокси и получить ответ API PlaceFinder.
Вот мой экспресс-маршрут:
app.get('/placefinder/:curr_address', function (req, res) {
var options = {
host: 'where.yahooapis.com',
port: 80,
path: '/geocode?location=' + req.params.curr_address + '&flags=J&appid=[put app id here]'
};
var req = http.get(options, function (res2) {
console.log("Got response: " + res2.statusCode);
res2.setEncoding('utf8');
res2.on('data', function (chunk) {
console.log('BODY: ' + chunk);
res.render('response', {
response: chunk
}); // res.render
}); // on
}); // req
req.on('error', function (e) {
console.log("Got error: " + e.message + "... path: " + options.host + options.path);
});
// write data to request body
req.write('data\n');
req.write('data\n');});
Приведенный выше код работает. Например, я могу посетить mywebsite.com/placefinder/123+fake+street,90210, и будет отображен ответ от API PlaceFinder.
Проблема в том, что каждый может посетить эту страницу и получить ответ от API PlaceFinder. Я не хочу этого Я только хочу, чтобы мои (ajax) скрипты имели доступ.
Как я могу использовать некоторую базовую аутентификацию, чтобы разрешить только моим ajax-запросам доступ к mywebsite.com/placefinder/123+fake+street,90210 ... Я никогда не использовал базовую аутентификацию и не могу понять как применить это к этому делу.
Или, есть ли какой-нибудь способ, которым я могу заблокировать каталог placefinder от любого внешнего доступа (вроде как apache .htacess)?