2016-10-11 3 views
0

나는 Angular에 처음으로 익숙하며 사용자가 로그인했을 때 특정 경로를 차단하기위한 AuthGuard를 설정하는 것을 이해하려고합니다. 주위를 검색하는 동안이 코드를 발견하고 작동합니다. 그러나 코드가하는 일을 완전히 이해하지 못합니다. 누구나 모든 일을 설명 할 수 있다면 큰 도움이 될 것입니다. 고맙습니다! 각 2 라우터가 경로에 액세스하려고하면 모든 경비는 구성의 경로에 추가에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

, 그것은 'canActivate'방법을 평가합니다.

가드 중 하나가 false를 반환하거나 구독 할 때 false로 평가되는 관찰 가능 항목을 반환하면 라우터가이 페이지에 액세스하지 못하게됩니다.

+0

자세한 내용은 http://blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.html을 참조하십시오. – mahulst