Проблема обновления токена Adal.js в Angular
Токен обновления не работает, как я ожидал, в adal.js(@types - 1.0.8), когда пользователь простаивает на экране в течение последних 15 минут (потому что я обновляю токен до истечения 15 минут после истечения срока действия старого токена), и после этого выполняю действие, то мой сервисный вызов не удастся. потому что он получает старый токен (срок действия которого истекает) в заголовке, но обновление токена также выполняется после этого. Как я могу справиться с этим в AngularJS и Adal библиотеки? Я использовал приведенный ниже код для получения токена обновления
this.authenticationContext.getCachedUser();
this.authenticationContext.acquireToken(config.clientId, function (errorDesc, token) {
if (errorDesc) {
console.log("ErrorDesc", errorDesc);
}
if (token) {
console.log("calling the Web API with the access token", token);
}
});
в угловых.
1 ответ
- Убедитесь, что ваши URL-адреса ответов и URI перенаправления совпадают и правильно настроены как при регистрации вашего приложения, так и в настройках вашего config / app.
- Добавьте метод var user = authContext.getCachedUser() сразу после вызова authContext.handleWindowCallback в вашем index.js. Эта функция устанавливает пользовательское свойство adal, и оно должно запускаться при каждой загрузке страницы.
- Установить время жизни токена. https://docs.microsoft.com/en-us/azure/active-directory/active-directory-configurable-token-lifetimes
Срок действия токена проверки подлинности Azure истекает каждые 1 час. вам необходимо обновить токен до истечения срока его действия. для этой цели существует множество оболочек angular над библиотекой ADAL.js. См. Мой ответ в приведенной ниже ссылке, чтобы получить представление.
Adal Angular 4 - токен обновления не работает должным образом