node.js - 如何在node.js客户端中进行Auth

标签 node.js basic-authentication node.js-client

我想使用这个带有身份验证的 REST API。我正在尝试包含 header 但没有得到任何响应。它抛出一个输出,通常在没有身份验证时抛出。谁能给我建议一些解决方案。下面是我的代码

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);
});

最佳答案

request模块将使您的生活更轻松。它现在包括 Basic Auth作为一个选项,这样您就不必自己构建 header 。

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

关于node.js - 如何在node.js客户端中进行Auth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15986204/

相关文章:

javascript - 无法使用 webpack 在 GitHub Actions 中为生产构建

java - 通过 CXF 拦截器的 HTTP 基本身份验证不起作用

javascript - 在 try block 中使用 try 来捕获不同的错误是一个好习惯吗? - JavaScript

javascript - node.js 文件中绑定(bind)的函数是什么

ios https和基本身份验证和发布请求

Spring Security 在安全注释配置中排除 url 模式

node.js - Windows Azure Node JS WEBSOCKET 握手失败 503 错误

node.js - Node socket.io客户端监听发送到其他客户端的事件

javascript - 运行函数多次返回 "error: Can' 发送后设置 header ”