cod*_*lex 5 angular2-routing angular
据我了解, Angular2 中的CanActivate接口仅对路由更改有效。因此,如果我有一个页面p需要用户登录,我可以创建一个实现 CanActivate 接口的防护,该接口将允许RouterModule仅在用户登录时激活p 。
但是当p处于活动状态并且用户注销时会发生什么?我试图找到检查是否允许页面处于活动状态而不更改 RouterModule 中的路由的最佳实践,但我找不到任何有用的东西。假设页面p处于活动状态并且需要登录。现在,当 p 处于活动状态时,会以某种方式触发注销,但不涉及路由更改。假设服务器响应 401,并且应用程序注意到用户不再登录。检查活动页面是否需要登录并采取相应措施的最佳做法是什么?活动页面可能不需要登录。在这种情况下,一切都应该保持原样。
您可以添加data您的路由,稍后您可以使用它来检查该路由是否需要身份验证,
像下面这样的东西,
{
path: ...,
component: ...,
canActivate: [CanActivateGuard],
data: { authRequired: true }
}
Run Code Online (Sandbox Code Playgroud)
在注销触发器中,您可以注入ActivatedRoute检查激活的路由数据,以确定是否要将用户发送到登录页面,
constructor(route: ActivatedRoute) {}
...
someCallBack(){
if(!!this.route.snapshot.data
&& this.route.snapshot.data.authRequired == true){
// redirect to login page
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |