Angular2 authguard路线

时间:2017-05-16 16:18:15

标签: angular

我正在开发一个应用程序网络,现在我遇到了路由问题。 我创建了一个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,如果你已经注册,则只能访问其他人。

1 个答案:

答案 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' }

当然,命名取决于你。