【问题标题】:how to do Auth in node.js client如何在 node.js 客户端中进行身份验证
【发布时间】:2013-04-13 09:15:07
【问题描述】:

我想通过身份验证来使用这个 rest 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);
});

【问题讨论】:

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


    【解决方案1】:

    request 模块将使您的生活更轻松。它现在包含一个 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

    【讨论】:

    • 是的,这对我有用,你能告诉我如何将此客户端程序与我的 UI 连接,以便我可以在 UI 中打印 JSON
    • 当您说客户端程序时,您是指 node.js 进程还是客户端 javascript?你有可以放在 github 上的示例项目吗?
    • 我有来自 node.js 服务器的其余 API 现在我想使用该 api 在我的 UI 中打印 jason .. 我该怎么做
    • 我在命令提示符下得到的 JSOn 有什么方法可以通过 javascript 或 Jquery 或任何方式进入 UI。
    • 亲爱的@Noah,我也与几年前的 Sau 处于同一困惑阶段。我还尝试在我的客户端 NodeJS Web 应用程序上使用身份验证,其中到 Web 应用程序中页面的每个路由都将通过来自服务器端 nodejs api 的身份验证进行绑定。这是我的详细问题。 stackoverflow.com/questions/45560910/…
    【解决方案2】:

    在您的评论中,您问:“我在命令提示符下获得的 JSOn 有什么方法可以通过 javascript 或 Jquery 或任何方式进入 UI。”

    嘿,把尸体还给你的客户:

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

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多