Не актуально
А можете объяснить (неудобно наглеть, но желательно с примером), почему в этой конструкции не работает 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;
}