Как сделать аутентификацию в клиенте node.js
Я хочу, чтобы использовать этот отдых API с аутентификацией. Я пытаюсь включить заголовок, но не получаю никакого ответа. он генерирует вывод, который он обычно генерирует, когда нет аутентификации. Может кто-нибудь предложить мне несколько решений. ниже мой код
var http = require('http');
var optionsget = {
host : 'localhost', // here only the domain name
port : 1234,
path:'/api/rest/xyz',
headers: {
'Authorization': 'Basic ' + new Buffer('abc'+ ':' + '1234').toString('base64')
} ,
method : 'GET' // do GET
};
console.info('Options prepared:');
console.info(optionsget);
console.info('Do the GET call');
var reqGet = http.request(optionsget, function(res) {
console.log("statusCode: ", res.statusCode);
res.on('data', function(d) {
console.info('GET result:\n');
process.stdout.write(d);
console.info('\n\nCall completed');
});
});
reqGet.end();
reqGet.on('error', function(e) {
console.error(e);
});
2 ответа
Решение
Модуль запросов сделает вашу жизнь проще. Теперь он включает в себя опцию Basic Auth, так что вам не нужно собирать заголовок самостоятельно.
var request = require('request')
var username = 'fooUsername'
var password = 'fooPassword'
var options = {
url: 'http://localhost:1234/api/res/xyz',
auth: {
user: username,
password: password
}
}
request(options, function (err, res, body) {
if (err) {
console.dir(err)
return
}
console.dir('headers', res.headers)
console.dir('status code', res.statusCode)
console.dir(body)
})
Для установки запроса выполните npm install -S request
В вашем комментарии вы спрашиваете: "Есть ли способ, чтобы JSOn, который я получаю в командной строке, попадал в пользовательский интерфейс либо через javascript, либо через Jquery, либо любым другим способом".
Эй, просто верните тело своему клиенту:
exports.requestExample = function(req,res){
request(options, function (err, resp, body) {
if (err) {
console.dir(err)
return;
}
// parse method is optional
return res.send(200, JSON.parse(body));
});
};