1

After following the instruction from the question given in

How to get Microsoft Graph API Access token from Node Script?

I am using React with node/express for this and i am following a tutorial from

https://jscomplete.com/learn/1rd-reactful

my code/server.js is as follows,

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...'));

I am getting the access token fine but i am getting an error when i run the function testGraphAPI(accessToken) to test it. It says

{
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure. Invalid audience.",
    "innerError": {
      "request-id": "4abe8022-ebf8-4ae7-b9be-8dd01a460eeb",
      "date": "2019-09-28T08:21:07"
    }
  }
}

I have also kept my redirect url in active directory as http://localhost:4242/

Can someone please give me suggestions on how to fix this, because i need to use the access token for further work.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.