2016-08-27 3 views
0

인증 된 사용자에게만 경로를 사용하도록 제한하려고합니다. 지금까지 모든 경로 구성 요소 생성자에 서비스 호출을 추가하여 사용자가 로깅되었는지 확인했습니다. 그렇지 않은 경우에는 로그인 경로 (인덱스)로 리디렉션 :AngularFire 2로 각도 2 경로 제한 Auth

logCheck(){ 
    this.af.auth.subscribe(user => { 
    if(!user){ 
     this.router.navigate(['']); 
    } 
}); 

의미가 있습니다. 그러나 실제로 각 구성 요소의 생성자를 사용하는 것이 올바른 방법인지는 확실하지 않습니다. 왜냐하면 실제로 쫓겨나 기 전에 구성 요소를로드하기 때문입니다. 더 좋은 방법이 있나요? app.routes const에서 추가 매개 변수를 사용하는 것과 같습니다.

답변

3

동일한 논리를 따르지 만 라우터와 함께 사용되는 Guard를 사용할 수 있으므로 누군가가 경로에 액세스하려고 시도 할 때 서비스 부울이 true로 설정되지 않은 경우 리디렉션됩니다.

체크 아웃 angular.io 라우터 설명서의이 부분 : https://angular.io/docs/ts/latest/guide/router.html#!#guards

이 그것을 수행하는 방법에 대한 예입니다,하지만 당신은 이미 한 일을 함께가 꽤 빨리해야합니다.

+0

경비원을 사용하여 실제 해결책을 찾았습니까? 그렇다면 답을 확인하는 것을 잊지 마십시오. 감사 –