Obter o valor retornado pelo método canActivate na rota Angular2 em um componente?
Eu criei um Gerenciador de autenticação no Angular2 para restringir o acesso ao componente diretamente. Ainda sou novo em angular e aprendendo os conceitos.
Consegui restringir o usuário se o nome do usuário não estiver correto. Mas não consigo usar o valor retornado pelo método canActivate no meu componente para exibir uma mensagem no meu front end.
Minha classe 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;
}
}
}
Posso ver que você não está autorizado no log, mas como usar o valor em um componente.
Meu app.router.ts
{
path: 'persons/:id',
component: PersonDetailComponent,
canActivate:[AuthManager]
}