Я добавил охрану маршрута, чтобы проверить, прошел ли пользователь аутентификацию и может ли он войти в приложение. Ниже приведен фрагмент кода, который показывает, как у меня есть 2 различных условия для обработки, если пользователь аутентифицирован или нет:
if (this.adal.user.isAuthenticated) {
return true;
} else {
this.adal.acquireToken(clientId).toPromise().then((data) => {
console.log('Refreshed the token.');
return(true);
}).catch ((error) => {
console.log('No user logged in.');
this.router.navigate(['/login']);
return(false);
});
}
Проблема в том, что когда вызывается другая часть кода, то есть вызывается acquToken (), она возвращает наблюдаемую часть, которую я конвертирую в обещание. Как только токен обновлен, я возвращаю истину. Но я вижу пустую страницу, когда это происходит, как будто «return true» никогда не вызывается. Не уверен, почему это происходит, может быть, то, как я использую метод toPromise, не правильно. Было бы здорово, если бы кто-нибудь дал мне небольшой совет по этому поводу.