Microsoft graph - NodeJS/ExpressJS - Учетные данные клиента - Получение ошибки при попытке использовать полученный токен доступа
После выполнения инструкций из вопроса, приведенного в
Как получить токен доступа к Microsoft Graph API из Node Script?
Я использую React с node/express для этого, и я следую руководству от
https://jscomplete.com/learn/1rd-reactful
мой код / server.js выглядит следующим образом:
import express from 'express';
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import App from '../components/App';
const server = express();
server.use(express.static('dist'));
server.get('/', (req, res) => {
const initialMarkup = ReactDOMServer.renderToString(<App />);
res.send(`
<html>
<head>
<title>Sample React App</title>
</head>
<body>
<div id="mountNode">${initialMarkup}</div>
<script src="/main.js"></script>
</body>
</html>
`)
});
const request = require("request");
const endpoint = "https://login.microsoftonline.com/[My Tenant].onmicrosoft.com/oauth2/token";
const requestParams = {
grant_type: "client_credentials",
client_id: "[My ApplicationID]",
client_secret: "[My Secret]",
resource: "https://graph.windows.net"
};
request.post({ url:endpoint, form: requestParams }, function (err, response, body) {
if (err) {
console.log("error");
}
else {
console.log("Body=" + body);
let parsedBody = JSON.parse(body);
if (parsedBody.error_description) {
console.log("Error=" + parsedBody.error_description);
}
else {
console.log("Access Token=" + parsedBody.access_token);
testGraphAPI(parsedBody.access_token);
}
}
});
function testGraphAPI(accessToken) {
request.get({
url:"https://graph.microsoft.com/v1.0/users",
headers: {
"Authorization": "Bearer " + accessToken
}
}, function(err, response, body) {
console.log(body);
})
}
server.listen(4242, () => console.log('Server is running...'));
Я получаю токен доступа в порядке, но получаю сообщение об ошибке при запуске функции testGraphAPI(accessToken) для ее проверки. Это говорит
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Access token validation failure. Invalid audience.",
"innerError": {
"request-id": "4abe8022-ebf8-4ae7-b9be-8dd01a460eeb",
"date": "2019-09-28T08:21:07"
}
}
}
Я также сохранил свой URL-адрес перенаправления в активном каталоге как http://localhost:4242/
Может кто-нибудь дать мне предложения о том, как это исправить, потому что мне нужно использовать токен доступа для дальнейшей работы.