Я использую маршрутизатор в angular для перенаправления пользователя в зависимости от того, вошел ли он в систему и его текущий URL: Ниже вы видите маршруты из моего модуля app-routing-module:
const routes: Routes = [
{ path: 'home', component: HomeComponent, canActivate: [RouteGuardService] },
{ path: 'login', component: LoginComponent},
{ path: '', redirectTo: 'login', pathMatch: 'full'}, // redirects to '' exists hence keep this in mind when redirecting
{ path: '**', redirectTo: 'home' },
];
В случае, если пользователь не вошел в систему, но пытается получить доступ к каталогу "/ home", он / она перенаправляется в "/ login". Код, который я использую для этого:
if (accessGranted){
return true;
} else {
// tell router to navigate to login pag
this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });
return false;
}
Этот код в основном работает, но сохраняется одна ошибка: если я пытаюсь получить доступ к дому без входа в систему, я сначала перенаправляюсь на «/», только если я перефразирую sh, меня перенаправляют на страницу входа. Я не очень понимаю, почему это происходит, и хотел бы решить эту проблему.
С уважением, Сэм