【问题标题】:Node JS requesting token using oauth2 not workingNode JS使用oauth2请求令牌不起作用
【发布时间】:2016-11-04 06:36:38
【问题描述】:

我无法通过使用简单的“请求”npm 模块进行 oauth 令牌身份验证来取回令牌。

var request = require('request');

var payload = {
    'grant_type': "password",
    'username': user,
    'password': pass,
    'client_id': client_id,
    'client_secret': client_secret,
    'scope' : "internal"
};

var options = {
    method: 'POST',
    url: host,
    headers: {
        //'accept': "application/json",
        'content-type': "application/x-www-form-urlencoded"
    },
    form: JSON.stringify(payload)
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        var info = JSON.parse(body);
        console.log(info);
    } else {
        console.log(error);
        //console.log(response.statusCode);
    }
}

request(options, callback);

返回以下错误:

 Error: getaddrinfo ENOTFOUND www.rest.synthesio.com www.rest.synthesio.com:443
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)


code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'www.rest.synthesio.com',
  host: 'www.rest.synthesio.com',
  port: 443 }

知道为什么我会收到 ENOTFOUND 错误吗?不知道为什么它也没有附加完整的 URL。

这些是 URL 的两个部分:

主机网址:'https://www.rest.synthesio.com/' 令牌路径:security/v1/oauth/token

请帮忙。我什么都试过了!!!

【问题讨论】:

  • 我可以使用 POSTMAN api 工具但不能通过我的 JS 代码 :( womp
  • 您是否在 Node 代码中指定了“http”或“https”之类的协议?
  • @arjabbar 如果我使用 'request' npm 模块而不是 http 模块,为什么我需要指定 http 或 https?如果我错了,请纠正我。谢谢
  • 我不知道。我以前从未使用过请求。我只好问了。
  • 您肯定需要 URL 中的协议/方案才能使其正常工作。我通过 request@2.72.0 确认了这一点。我也看到该 URL 的 DNS 错误。您能否在问题中提供您的 Postman 请求标头和信息?

标签: javascript node.js request oauth2


【解决方案1】:

哇....愚蠢的错误。我用https://www.rest.synthesio.com代替https://rest.synthesio.com

感谢大家的帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 2019-05-11
    • 2014-11-05
    • 2021-03-24
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多