Показать сообщение отдельно
  #16 (permalink)  
Старый 03.01.2020, 09:56
Интересующийся
Отправить личное сообщение для Vadya Посмотреть профиль Найти все сообщения от Vadya
 
Регистрация: 15.04.2010
Сообщений: 24

Не актуально

А можете объяснить (неудобно наглеть, но желательно с примером), почему в этой конструкции не работает this.router.navigate(['/login']);
Там конечно легко накостылировать на ЖС, но хочется правильно все сделать
//  this.router.navigate(['/login']); // Тут работает
return this.userService.isAuthenticated().pipe(
            tap((isAuthenticated: boolean) => {
                if (!isAuthenticated) {
                    this.router.navigate(['/login']); // А тут нет
                } else {
                    return true;
                }
            })
);


В общем, как часто бывает, немного затупил - зацикливалось
Хотел сделать так: { path: 'login', component: LoginComponent, canActivate: [AuthGuard] }
Чтобы страницу логина было видно в canActivate и если авторизация есть, то переадресация на главную
return this.userService.isAuthenticated().pipe(
            tap((isAuthenticated: boolean) => {
                if (!isAuthenticated && route.url.join() != 'login') { // но почему-то это условие не срабатывает (&& route.url.join() != 'login'). Если нет авторизации бросает на страницу логина, а потом с нее же на нее. Это я так понимаю, а вообще в корень отправляет. Без ошибок в консоли
this.router.navigate(['/login']);
} else {
                    return true;
                }

Последний раз редактировалось Vadya, 05.01.2020 в 16:49.
Ответить с цитированием