我正在开发一个应用程序网络,现在我遇到了路由问题。 我创建了一个AuthGuard,如果有用户登录则返回。好吧,当我想分成两种类型的路线时,问题就出现了:
- 如果我没有登录,我只能去哪里。 - 如果我登录,我只能去的地方。
所以如果我登录了我想要的是我不能去一些路线。
这是我的路由器:
{ path: 'app',
component: AppComponent,
children: [
{ path: 'login', component: LoginComponent },
{ path: 'inicio', component: ContentHomeComponent },
{ path: 'register', component: RegisterFormComponent},
{ path: 'apuestas', component: ContentBetComponent, canActivate: [AuthGuard]}
]},
{ path: '**', redirectTo:'/app/inicio',pathMatch: 'full' }
我现在拥有的是我只能去" apuestas"如果我登录但我想分开两个我怎么说。我想要登录,只有在你没有登录时才能访问inicio和register,如果你已经注册,则只能访问其他人。
答案 0 :(得分:0)
如果我理解正确,您可以添加另一个NotAuthenticatedGuard
,如果用户已登录,则会在false
上返回canActivate
。
{ path: 'app',
component: AppComponent,
children: [
{ path: 'login', component: LoginComponent, canActivate: [ NotAuthGuard ] },
{ path: 'inicio', component: ContentHomeComponent, canActivate: [ NotAuthGuard ] },
{ path: 'register', component: RegisterFormComponent, canActivate: [ NotAuthGuard ] },
{ path: 'apuestas', component: ContentBetComponent, canActivate: [AuthGuard]}
]},
{ path: '**', redirectTo:'/app/inicio',pathMatch: 'full' }
当然,命名取决于你。