получить претензии, поступившие от входа Azure Ad B2C, используя node.js - PullRequest
0 голосов
/ 06 февраля 2019

Я использую Azure AD B2C для проверки подлинности.После успешного входа в систему я вижу в браузере что-то вроде:

localhost: 3000 / # id_token = eyJ0elll ...

Мне интересно, как получить этот токен в моем бэкэнде Nodejs

1 Ответ

0 голосов
/ 07 февраля 2019

Похоже, что вы следовали учебному пособию Azure Active Directory B2C: Web sign-in with OpenID Connect, чтобы отправить запрос аутентификации по URL-адресу, например https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize?....., и получить ответ 30x для перенаправления на местоположение localhost:3000/#id_token=eyJ0elll...&code=AwABAAAA...&state=arb.... в браузере.А теперь вы хотите реализовать это в NodeJS без браузера.

Вот мой простой код, использующий request/request.

const request = require('request');
var url = require("url");
var querystring = require("querystring");
var authorize_uri = 'https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize?.....';
request(authorize_uri, function (error, response, body) {
    var href = response.request.href; // get localhost:3000/#id_token=eyJ0elll...&code=AwABAAAA...&state=arb....
    var hash = url.parse(href).hash; // get #id_token=eyJ0elll...&code=AwABAAAA...&state=arb....
    //var hash = response.request.uri.hash; // or directly get #id_token=eyJ0elll...&code=AwABAAAA...&state=arb....
    var id_token = querystring.parse(hash)['#id_token'];
    console.log(id_token);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...