Невозможно обменять код авторизации для получения токена доступа с использованием платформы идентификации Microsoft в приложении моего узла - PullRequest
0 голосов
/ 09 мая 2019

Я реализую OAuth2 с использованием платформы идентификации Microsoft.Для этого я зарегистрировал свое приложение в центре администрирования Azure Active Directory и получил идентификатор приложения и другие учетные данные приложения.Также упоминается Redirect-url.

Итак, прежде всего, я сгенерировал auth-url (фрагмент кода приведен ниже) и получил код авторизации для моей конечной точки перенаправления.когда я пытаюсь обменять код авторизации для получения токена доступа, он выдает исключение с кодом состояния 401 с сообщением об ошибке «401 не авторизован».

Я использую пакет узла simple-oauth2.Вот мой фрагмент для генерации URL-адреса

function authUrl() {
    const url = oauth2.authorizationCode.authorizeURL({
        redirect_uri: outlookCalendar.REDIRECT_URI,
        scope: outlookCalendar.APP_SCOPES
    });
    return url;
}

, где APP_SCOPES = "User.Read https://outlook.office.com/Calendars.ReadWrite"

, здесь URL-адрес, сгенерированный с помощью приведенного выше кода

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id=xxxxxxxxxxxx&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fcalendars%2Foutlook%2Fcode&scope=User.Read%20https%3A%2F%2Foutlook.office.com%2FCalendars.ReadWrite

здесь есть функция для получения токена доступа

async function accessToken(code) {
    try {
        const result = await oauth2.authorizationCode.getToken({
            code : code,
            redirect_uri: outlookCalendar.REDIRECT_URI,
            scope: outlookCalendar.APP_SCOPES
        });

        const token = oauth2.accessToken.create(result);
        console.log('Token created: ', token.token);

        return { tokens: token.token.access_token };
    } catch (exception) {
        console.log(exception);
        return { error: exception };
    }
}

Итак, пожалуйста, кто-нибудь подскажет мне, как получить токен доступа или что-то пошло не так в моем коде.Спасибо ...

...