にリダイレクトされます。私はAngular2 rc.4(router 3.0.0-beta.2)でPathLocationStrategyを使用します。Angular2:成功したログインとログアウトはlocalhost:3000 /#
私はtouterのリダイレクトで奇妙な問題に陥っています。
ケース1:最初の明確なブラウザの履歴/キャッシュされたファイル
localhost:3000/login
からログインに成功した後、ルータは予想通りである、localhost:3000
にリダイレクトします。
ログアウト後、ルータは最初にlocalhost:3000/#
にリダイレクトしてからlocalhost:3000/login
にリダイレクトします。
ケース2:ケース1
の歴史を持つlocalhost:3000/login
からログインに成功した後、ルータはlocalhost:3000/#
にリダイレクトします。
ログアウト後、ルータは最初にlocalhost:3000/#
にリダイレクトしてからlocalhost:3000/login
にリダイレクトします。
私の質問は上記のケースにlocalhost:3000/#
が登場し、どうしてそれらを取り除くことができるのですか?
マイルートの設定は、私は私のダッシュボードページに移動しthis.router.navigate(['/myapp/dashboard']);
を使用して、私のログインコンポーネントで
export const LoginRoutes = [
{
path: '',
redirectTo: '/myapp/dashboard',
pathMatch: 'full'
},
{ path: 'login',
component: LoginComponent
}
];
と
export const ProtectedRoutes: RouterConfig = [
{
path: '',
redirectTo: '/myapp',
pathMatch: 'full'
},
{
path: 'myapp',
component: RouteDispatcherComponent,
canActivate: [AuthGuard],
children: [
{
path: '',
redirectTo: '/myapp/dashboard',
pathMatch: 'full'
},
{
path: 'dashboard',
component: DashboardComponent
}
]
}
]
です。
そしてAuthGuard
が、これは複数のブラウザ(クロム、Firefoxの、サファリ)で起こった、ところで
canActivate() {
if (this.authService.isAuthenticated()) {
return true;
}
this.router.navigate(['/login']);
return false;
}
のようなものです。