Я создал Auth Manager в Angular2, чтобы напрямую ограничить доступ к компонентам. Я все еще новичок в angular и изучаю концепции.
Я смог ограничить пользователя, если имя пользователя неверно. Но я не могу использовать значение, возвращаемое методом canActivate в моем компоненте, для отображения сообщения в моем интерфейсе.
Мой класс AuthManager
import { Injectable } from '@angular/core';
import { CanActivate,Router,ActivatedRouteSnapshot,RouterStateSnapshot } from '@angular/router';
@Injectable()
export class AuthManager implements CanActivate{
user = "user";
constructor(private router:Router){
}
canActivate(route:ActivatedRouteSnapshot,state:RouterStateSnapshot){
console.log("Comes Here");
if(this.user == "user"){
return true;
}else{
console.log("YOur are not authorized");
this.router.navigate(['/persons']);
return false;
}
}
}
Я могу видеть, что вы не авторизованы в журнале, но как использовать значение в компоненте.
Мой app.router.ts
{
path: 'persons/:id',
component: PersonDetailComponent,
canActivate:[AuthManager]
}