了解使用oauth的复杂curl命令

时间:2017-10-23 14:26:34

标签: node.js curl oauth

我有以下curl命令(删除了公司特定的详细信息):

curl -v -u "user:password" -H "Content-Type: application/x-www-form-urlencoded" -d 
"grant_type=annonymised:mycompany:params:oauth:grant-type:apiKey&apikey=myAPI Key" 
"myendpoint goes here"

我是CURL的新手,我正在尝试使用nodejs'request'模块将其转换为请求(请记住,我实际上使用的是用户名/密码而不是API密钥)。我在'form'参数中添加了什么?目前我有:

form: { "params": "oauth","grant_type": "password", "username": username, "password": password }, 

但由于我无法阅读上面的卷曲请求,我很难知道什么是丢失的(我再说一遍,我使用的是用户名/密码,而不是API密钥)。任何人都可以帮忙解决这个问题。

1 个答案:

答案 0 :(得分:1)

您的curl命令将:

  • 使用HTTP Basic authentication与用户名user和密码password
  • POST表单(标题字段Content-Type设置为application/x-www-form-urlencoded
  • 在请求的正文中使用URL编码的两个参数:
    • grant_type参数设置为值annonymised:mycompany:params:oauth:grant-type:apiKey
    • apikey param设置为myAPI Key
  • 到您调用myendpoint goes here
  • 的网址端点

使用node.js中的request module,基于example for HTTP Authform postingnode.js等价物将如下所示:

var request = require('request');

request.post('myendpoint goes here').auth('user', 'password').form({
    grant_type: 'annonymised:mycompany:params:oauth:grant-type:apiKey',
    apikey: 'myAPI Key'
});