2016-10-11 6 views
0

私は角にかなり新しいですし、私は、ユーザーがログインするかしない特定の経路を遮断するAuthGuardを設定理解しようとしています。私はこのコードを検索しながら見つけたし、それは動作します。しかし、私はコードが何をしているのか完全に理解していません。誰もがちょうどすべてがここで何をしているかを説明することができれば、それは大きな助けになります。ありがとうございました!Angularfire2 AuthGuardは説明

constructor(private auth: FirebaseAuth, private router: Router) {} 
    canActivate(): Observable<boolean> { 
    return this.auth 
     .take(1) 
     .map((authState: FirebaseAuthState) => !!authState) 
     .do(authenticated => { 
     if (!authenticated) this.router.navigate(['']); 
     }); 
    } 

答えて

0

角度2ルータがルートにアクセスしようとすると、それはすべての警備員の「canActivate」メソッドは、コンフィギュレーション内のルートに追加評価されます。

これらの警備員のいずれかがfalseを返す、またはあなたがそれを購読する場合は、falseと評価され、観察を返す場合は、このページにアクセスしてからルータを防ぐことができます。詳細については

+0

私はhttp://blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.htmlを示唆してお読みください – mahulst