我需要从Microsoft AD获取令牌,为此我需要使用POST
发出BODY
请求。我有这个代码返回正文中缺少grant_type
参数的错误。我猜它只是不送尸体。如何配置发送正文的请求?
任何帮助将不胜感激!
这是我的代码:
var options = {
hostname: 'login.microsoftonline.com',
path: '/common/oauth2/token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data:{
grant_type: oauthData.grant_type,
client_id: oauthData.client_id,
code: oauthData.code,
redirect_uri: oauthData.redirect_uri,
resource: oauthData.resource
}
};
function requestToken(options){
var req = https.request(options, function(res) {
console.log("statusCode: ", res.statusCode);
console.log("headers: ", res.headers);
res.on('data', function(d) {
process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error('---- Error ----');
console.error(e);
});
}//end of requestToken()
答案 0 :(得分:0)
它不是发送正文,因为您没有告诉req对象。
req.write(qs.stringify({
grant_type: 'authorization_code',
client_id: config.clientId,
scope: config.scope,
client_secret: config.clientSecret,
tenant: config.tenant
}))