Как видно из названия. Я проверяю аутентификацию, используя запрос к API. Если запросы возвращают false, я хочу выйти из системы. Однако, если я делаю это с охраной, она не работает, потому что она работает синхронно, и я не могу дождаться запроса на показ страницы при каждом переходе на другую страницу.
Пример:
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
this.authService.checkAuth(); // Sends request to backend for auth validation
return this.authService.getIsAuthenticated(); // Shows/doesn't show page before validation
}
Если я запустлю его асинхронно, он будет каждый раз ждать ответа, прежде чем отобразит страницу. Я хочу, чтобы он отображал страницу во время запроса, но если запрос возвращает false, я хочу выйти из системы ie this.authService.logout()
.
Могу ли я достичь этого, не помещая его в IonicViewDidLoad
каждой страницы?
Сценарий:
Пользователь вошел в систему на двух устройствах. Пользователь отменяет связь с одним из устройств. Поэтому во время сеанса необходимо отключить другое устройство.
Возможно, немедленно. Но я подозреваю, что для этого потребуется интервал, чтобы непрерывно проверять, по-прежнему ли подключено устройство. Поэтому этого достаточно для изменения страницы (как в защите).