Я пишу функцию Azure для аутентификации Microsoft Graph без пользователя. Для этого требуется токен доступа, который возвращается из ответа HTTPS. Я пытаюсь десериализовать объект JSON, однако я не могу вызвать какие-либо методы, которые позволили бы мне получить значение из ответа Microsoft.
Я могу регистрировать данные, но когда я вызываю метод, чтобы попытаться получить значение, функция имеет тайм-аут.
// d = данные, возвращаемые Microsoft
Я пробовал следующие методы, но они все время ожидания:
JSON.parse(d)
d.map()
d.values()
Мне интересно, знает ли кто-нибудь, какую библиотеку мне следует вызывать для доступа к методам - я думаю, что мне нужен оператор require в верхней части функции, но он может быть совершенно неосновным. Любая помощь с благодарностью!
var https = require('https');
var querystring = require('querystring');
module.exports = function (context, req) {
var postData = querystring.stringify({
'client_id': {client_id},
'scope': 'https://graph.microsoft.com/.default',
'client_secret': {client_secret},
'grant_type': 'client_credentials'
});
var options = {
hostname: 'login.microsoftonline.com',
port: 443,
path: '/{token}/oauth2/v2.0/token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': postData.length
}
};
var oauthReq = https.request(options, (res) => {
res.setEncoding('utf8');
res.on('data', (d) => {
// vvvvv PROBLEM OCCURS HERE vvvvv
context.log('SERIALIZED DATA' + d.map())
context.log('DATA ' + d.values())
});
});
oauthReq.on('error', (e) => {
context.log('ERROR ' + e);
});
var wr_r = oauthReq.write(postData)
var rq_e = oauthReq.end();
};
Я ожидаю получить значение для access_token, возвращенного из ответа на вызов HTTPS GET.