У меня еще один вопрос появился. Данные пользователя я получил, а в роутер передать через функцию не могу. Вот код с комментарием, где не получается:
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from "@angular/router";
import { Observable } from "rxjs";
import { UserService } from './user.service';
import { Injectable } from '@angular/core';
@Injectable()
export class AuthGuard implements CanActivate {
user: any;
constructor(private userService: UserService, private router: Router) { }
public isAuthenticated(): any {
this.userService.getUser().subscribe(data => {
this.user = data;
if(this.user['login'] !== false) {return true;}
});
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) : Observable<boolean> | boolean{
if(this.isAuthenticated()) { // <- Сюда не проходит true
return true;
} else {
this.router.navigate(['/login']);
}
}
}