我知道我们可以对位于一个模块中的路线进行分组。像那样:
canActivate: [AuthGuard],
children: [
{
path: '',
children: [
{ path: 'crises', component: ManageCrisesComponent },
{ path: 'heroes', component: ManageHeroesComponent },
{ path: '', component: AdminDashboardComponent }
],
}
但我应该将保护添加到每个模块的路由文件中。而且我有很多。
我希望用户在未经授权的情况下不能进入除一条路线(登录路线)以外的任何路线。
为所有人添加警卫的正确方法是什么?
答案 0 :(得分:5)
您可以使用带有警卫的无组件空路径父路径
{ path: '', canActivate: [AuthGuard], children: [
{
path: '',
children: [
{ path: 'crises', component: ManageCrisesComponent },
{ path: 'heroes', component: ManageHeroesComponent },
{ path: '', component: AdminDashboardComponent }
],
}
}
并在警卫中检查用户是否已登录。
如果未登录且当前路由为login
,则仍然允许它。