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/

Может кто-нибудь дать мне предложения о том, как это исправить, потому что мне нужно использовать токен доступа для дальнейшей работы.

0 ответов

Другие вопросы по тегам