【问题标题】:curl -u equivalent in Node.jsnode.js 中的 curl -u 等效项
【发布时间】:2018-10-31 23:33:44
【问题描述】:

试着做

curl -u 'clientID:clentSecret' 'https://api.someapi.com'

在节点中,但不知道如何授权。

我试过了

"Authorization": "Bearer" + "base64(clientID:clentSecret)",

和

 "Authorization": "Basic" + "base64(clientID:clentSecret)",

和:

auth: {
    'user': 'clientID',
    'pass': 'clientSecret'
}

但没有任何效果。如果有人有类似经历,请帮忙!

提前致谢。

【问题讨论】:

  • 您在Bearer 和Basic 和base64 之后缺少一个空格是字符串而不是值
  • 现在觉得自己好蠢 :) 谢谢老兄,就是这样!

标签: javascript node.js curl


【解决方案1】:

只是一个简单的修复。您在“Basic”之后遗漏了一个空格,它应该是“Basic”,而“Bearer”应该是“Bearer”。 然后你的函数 base64() 在引号内,所以这将是一个字符串,而不是你想要的值,删除函数周围的引号,它将起作用

【讨论】:

    【解决方案2】:

    看看这个页面:https://curl.trillworks.com/#node,非常方便。我想你已经从 cmets 得到了答案(感谢@Dennington-bear),但这值得一看,它可以将 curl 命令转换为 Node.js 脚本。我建议查看生成的代码,以便您准确了解它在做什么,但是从 curl 命令创建代码骨架非常有用。

    结果(对于这个命令);

    var request = require('request');
    
    var options = {
        url: 'https://api.someapi.com',
        auth: {
            'user': 'clientID',
            'pass': 'clentSecret'
        }
    };
    
    function callback(error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body);
        }
    }
    
    request(options, callback);
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      request.get('http://some.server.com/').auth(clientID, clentSecret, true);
      

      您可以阅读更多here

      【讨论】:

        猜你喜欢
        • 2011-10-12
        • 1970-01-01
        • 2019-03-09
        • 2014-07-01
        • 2020-03-08
        • 2011-01-10
        • 2010-09-12
        • 2015-04-18
        相关资源
        最近更新 更多