У меня есть класс авторизации, настроенный следующим образом:
export class AuthService {
user = new Subject<string>();
login(name: string) {
this.user.next(name);
}
}
У меня есть защита авторизации, настроенная для проверки того, имеет ли моя тема пользователя такое значение:
export class AuthGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
return this.authService.user
.pipe(
map(user => {
const isAuth = !!user;
if (isAuth) {
return true;
}
return this.router.createUrlTree(['/login']);
})
);
}
}
Я помещаю операторы печати в возврат, и они никогда не вызываются. Страница никогда не загружается и никогда не перенаправляется. Если я просто возвращаю true или false, это работает, но, возвращая мой authService.user, похоже, ничего не происходит.
const isAuth = !!user;
!!user - person Chanaka Weerasinghe   schedule 14.11.2019