Javascript 节点JS-构造OAuth2请求
我正在尝试构造一个对Box API的OAuth2请求。他们作为指导原则给出的示例POST请求对我来说有点模糊,因为我最近正在学习后端开发。示例如下:Javascript 节点JS-构造OAuth2请求,javascript,node.js,express,box-api,box,Javascript,Node.js,Express,Box Api,Box,我正在尝试构造一个对Box API的OAuth2请求。他们作为指导原则给出的示例POST请求对我来说有点模糊,因为我最近正在学习后端开发。示例如下: POST /token Content-Type: application/x-www-form-urlencoded grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer& assertion=<JWT>& client_id=<client_id>&
POST /token
Content-Type: application/x-www-form-urlencoded
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&
assertion=<JWT>&
client_id=<client_id>&
client_secret=<client_secret>
var boxHeaders = {
'Content-Type': 'application/x-www-form-urlencoded'
};
var boxOptions = {
url: 'https://api.box.com/oauth2/token',
method: 'POST',
headers: boxHeaders,
form: {
'grant_type': 'urn:ietf:params:oauth:grant-type:jwt-bearer',
'assertion': boxtoken,
'client_id': 'myclientid',
'client_secret': 'myclientsecret'
}
};
request.post(boxOptions, function(err, response, body) {
console.log(body);
});
我得到以下错误:
{
"error":"invalid_request",
"error_description":"Invalid grant_type parameter or parameter missing"
}
很明显,grant类型是不正确的,但是我不知道如何基于Box API示例构造字符串。如果有人能帮助我,甚至让我接触到一些关于如何做到这一点的好文章或教程,那就太好了
谢谢。我自己也在努力解决这个问题。通过将您当前在boxOptions.form中拥有的所有内容移动到请求正文中,我能够实现这一点 例如:
var boxHeaders = {
'Content-Type': 'application/x-www-form-urlencoded'
};
var boxOptions = {
url: 'https://api.box.com/oauth2/token',
method: 'POST',
headers: boxHeaders
};
var form = {
grant_type:'urn:ietf:params:oauth:grant-type:jwt-bearer',
client_id: 'id',
client_secret: 'secret',
assertion: boxtoken
};
var request = https.request(boxOptions, function(response) {
// do stuff
});
request.write(querystring.stringify(form));
request.end();
希望这有帮助。不幸的是,我对请求库不太熟悉,无法提供一个使用它的示例。嗨,Sarah,谢谢。我通过同样的方法实现了这一点,尽管后来我遇到了额外的错误。