私はAngular2で私のWebアプリケーションのために少し問題に直面してるのページにリダイレクトします。 しかし、私はどのように彼がいる場所にこのプロセスを作るルートにユーザーをリダイレクトするのか分からない。Angular2:ユーザーがアクセス権を持っている場合、私はチェックします。..</p> <p>各アプリケーションの起動、アプリケーションの起動
アイデア?
ありがとうございます!
私はAngular2で私のWebアプリケーションのために少し問題に直面してるのページにリダイレクトします。 しかし、私はどのように彼がいる場所にこのプロセスを作るルートにユーザーをリダイレクトするのか分からない。Angular2:ユーザーがアクセス権を持っている場合、私はチェックします。..</p> <p>各アプリケーションの起動、アプリケーションの起動
アイデア?
ありがとうございます!
2つの一般的な方法があります
そうでない場合は、ログインルート
にリダイレクトカスタムユーザが認証されるかどうかをチェックRouterOutlet
を使用他を見る
- Check if the user logged in on any page change in Angular 2
- http://www.captaincodeman.com/2016/03/31/angular2-route-security/
あなたはOnInit
インタフェースを実装し、リダイレクトを追加/ ngOnInit
方法でチェックして、自分の子コンポーネントに@CanActivate
を追加することができます。
class Static{
static authenticated:boolean = false;
static initialized:boolean = false;
}
@CanActivate(()=>{
if(Static.authenticated && Static.initialized){
return true;
}
return false;
})
protected ngOnInit():any
{
this.loginFacade.refresh().subscribe(event=>
{
var url = event.success ? this.location.path() : Routes.LOGIN;
Static.authenticated = event.success;
this.router.recognize(url).then(()=>
{
return Promise.resolve(url);
}, (e)=>
{
return Promise.resolve(Routes.LOGIN);
}).then((url)=>
{
Static.initialized = true;
return this.router.navigateByUrl(url);
});
});
}
もデフォルトルートを削除します。
角度がリダイレクトを簡単に処理しないようです...アプリケーションの最初のページを強制するための多くの努力... 私はこれら2つの方法を試してみましょう、ありがとう! – Gen
も参照してください。http://www.captaincodeman.com/2016/03/31/angular2-route-security/ –