Я пытаюсь выполнить проверку подлинности с Адал (Внутри реагировать приложение), поэтому я последовал the example от Azure-образцов, и это мой код:Невозможно прочитать информацию о пользователе - Адал ошибка не может войти в
var AuthenticationContext = require('../../node_modules/adal-angular/lib/adal.js');
var adalInstance = new AuthenticationContext({
instance: 'https://login.microsoftonline.com/',
clientId: '9897809e-XXXX-XXXX-XXXX-3e6de068af92',
postLogoutRedirectUri: window.location.origin,
endpoints: {}
});
export function enter() {
adalInstance.login();
var isCallback = adalInstance.isCallback(window.location.hash);
adalInstance.handleWindowCallback();
if (isCallback && !adalInstance.getLoginError()) {
adalInstance.acquireToken(adalInstance.config.clientId, function (error, token) {
if (error || !token) {
console.log('ADAL Error Occurred: ' + error);
return;
}
});
}
var user = adalInstance.getCachedUser();
console.log(user);
}
export function logout() {
adalInstance.logout();
}
Так у меня есть следующие сообщения: Произошел
ADAL Ошибка: Логин пользователя требуется
и для пользователя, я получаю null
.
В настоящее время я могу перейти на страницу входа в систему microsoft (вызванную из компонента входа), войти в систему и вернуться в приложение. У меня есть sessionStorage set:
Storage { adal.state.login: "73771340-XXXX-XXXX-XXXX-858c9edcba05", adal.nonce.idtoken: "20074445-XXXX-XXXX-XXXX-9f94c9b5cc31", adal.login.error: "", adal.error: "Invalid_state", adal.login.request: "http://localhost:3000/#id_token=eyJ…", adal.error.description: "Invalid_state. state: a2f210a5-e34b…", adal.token.renew.status: "Completed", length: 7 }
Что я делаю неправильно?
ДАННЫЕ: Я использую adal.js
библиотеку из версии в adal-angular
пакет: AdalJS v1.0.13
EDIT:
Теперь я использую конкретный adal.js
из here
Я изменил мой код:
var AuthenticationContext = require('./adal.js');
Когда я скомпилировал его (с помощью Webpack с Вавилонской для transpiling кода ES6), но дал мне ошибку о logging is not defined
, поэтому я добавил:
var Logging = {
level: 3,
log: function (message) {
console.log(message);
}
}
к adal
библиотеке.
И теперь, я получаю в браузере (Firefox, потому chromes, кажется, не показывают журнал я не знаю, почему) Консоль:
Wed, 18 Jan 2017 11:52:51 GMT:1.0.13-VERBOSE: State: d3c2bb0d-XXXX-XXXX-XXXX-e98a460572e2 bundle.js:74558:8
Wed, 18 Jan 2017 11:52:51 GMT:1.0.13-INFO: Returned from redirect url bundle.js:74558:8
Wed, 18 Jan 2017 11:52:51 GMT:1.0.13-INFO: State status:false; Request type:UNKNOWN bundle.js:74558:8
Wed, 18 Jan 2017 11:52:51 GMT:1.0.13-WARNING: User login is required bundle.js:74558:8
ADAL Error Occurred: User login is required bundle.js:74507:10
USER null bundle.js:74513:4
adalInstance.login() приведет в получении маркеров доступа, adalInstance.acquireToken приведет в получении маркеров конечной точки/ресурсов, так что я не понимаю, почему вы пропускание ClientId в acquireToken. –