加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular2路由器CanActivate,带参数?

发布时间:2020-12-17 18:09:37 所属栏目:安全 来源:网络整理
导读:我在这个具体问题上看到了一些问题. 我最近只处理angular2项目.无论如何我现在正在讨论一个问题.在已弃用的路由器中,我在路由的数据部分添加了用户角色,我已经覆盖了routerOutlet,因此我可以在激活路由之前检查此值). 目前我们可以使用CanActivate类/接口行,
我在这个具体问题上看到了一些问题.

我最近只处理angular2项目.无论如何我现在正在讨论一个问题.在已弃用的路由器中,我在路由的数据部分添加了用户角色,我已经覆盖了routerOutlet,因此我可以在激活路由之前检查此值).

目前我们可以使用CanActivate类/接口行,我们可以调用它.

现在我希望能够为这样的CanActivate类提供权限(我已经打成了Enum).在我通过访问我的SessionService来检查用户是否已登录之前,我现在需要检查用户是否具有某些权限.

正如我现在所看到的,我必须实现一个新的类,它为每个权限实现CanActivate.现在这意味着我将拥有7.然而,我们处于这个确切项目的早期阶段并且没有太多想到我可以将其提高到11.

我在我之前看到的是一个实现,每个canActivate实现只需要花费大约3-5行.但是,通过我可以提供属性或参数的实现,我会感觉更有帮助.

不要想到我必须实现以下类的情况:

CanActivateIfUserHasPermissionsViewContentAndViewUsers甚至更长.

注意在我的情况下权限基本上是多个动作.比如查看所有内容元素,或者编辑所有内容元素等.

解决方法

所以我找不到用params实现CanActivate的方法.

然而,我找到了一个对我来说似乎很好的解决方法.
我有一个服务,我可以在Module构造上加载我的路由. (我只是将它添加到模块的构造函数中).

我的路线现在包含数据{权限:[我在这里的值]}.在canActive钩子中检查了哪些,因为canActivate实现也使用相同的服务.

我的解决方案是基于我对另一个问题的讨论:Angular2 RC5 Cross-Module Provider / Scanning

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读