6
私はJWTを使用してユーザーを認証しています。私のangular2アプリ内の一部の経路は、ユーザーがログインしていなければログインページにリダイレクトするCanActivate Guardによって保護されています。今、私はログアウトボタンを実装しており、ログインページにリダイレクトしたいと思います。現在のルートがログインしていないユーザー(アカウントページなど)に表示されないようにする必要がある場合のみ、リダイレクトします。たとえば、ユーザーがホームページなどの場合、私はログインページにリダイレクトしたくありません。Angular2:現在のルートガードのトリガー - ログアウトアクションの処理
現在のルートにガードがあるかどうかをチェックして、このガードが存在する場合はそれをトリガーすることができれば完璧です。これは可能ですか?
ガード:すべてのルートガード必要なページの場合
public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.loginService.getCurrentUserName()) {
// logged in so return true
return true;
}
// not logged in so redirect to login page with the return url
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});
return false;
}