Component アクセスを直接制限するために、Angular2 で Auth Manager を作成しました。私はまだ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]
}