如何使用节点js中的API密钥从REST API获取数据?

时间:2016-03-18 16:26:30

标签: javascript node.js api rest authentication

我在节点服务器中使用第三方REST API。第三方API提供商为我提供了API密钥和cURL中的示例,如下所示:

$ curl -u APIKey@https://xyzsite.com/api/v1/users

我不知道我是如何在节点js中这样做的。我试过跟随但没有运气。我得到了

var options = {
  host: "xyzsite.com",
  path: "/api/v1/users",
  headers: {
    "Authorization": "Basic " + myAPIKey
  }
};


https.get(options, function(res, error) {
  var body = "";
  res.on('data', function(data) {
    body += data;
  });
  res.on('end', function() {

    console.log(body);
  });
  res.on('error', function(e) {
    console.log(e.message);
  });
});

控制台消息

{
  "message": "No authentication credentials provided."
}

1 个答案:

答案 0 :(得分:1)

像这样更改您的请求..

https.get(myAPIKey + "@https://xyzsite.com/api/v1/users",function(res,error){
  var body = "";
  res.on('data', function(data) {
    body += data;
  });
  res.on('end', function() {

    console.log(body);
  });
  res.on('error', function(e) {
    console.log(e.message);
  });
});

或者,如果您想使用options对象..

var options={
  host:"xyzsite.com",
  path:"/api/v1/users",
  auth: myAPIKey
};


https.get(options,function(res,error){
  var body = "";
  res.on('data', function(data) {
    body += data;
  });
  res.on('end', function() {

    console.log(body);
  });
  res.on('error', function(e) {
    console.log(e.message);
  });
});

More info on NodeJs https options