angularjs1.x怎么实现基于角色权限管理

在网上找了很多资料,还是没整理出来怎么去实现这一块?
项目需要在后台根据不同角色的人登录有俩块需要实现权限控制:

1、根据角色权限的不同进入对应的路由页面。
2、根据角色权限的管理对UI颗粒元素进行对应的显示隐藏或者相关操作。

这一块,具体思路应该怎么走。

阅读 3.5k
3 个回答

大体思路就是维护一个全局的权限配置对象和与之对应的鉴权系统。这两个东西分别解决你需要中的21

权限配置对象可以实现在$rootScope上,或者构造一个专门的service来维护它,如果是多个模块的权限,可能需要构造为factory。有了全局对象,那么对于页面元素的隐藏和操作相关的逻辑,都使用全局对象的具体属性来控制。

鉴权系统的话,其实就是一系列映射关系的解析,既然你是针对路由的跳转控制,那么这个鉴权系统会涉及两方面的控制:

  • 未进入需要进行鉴权的页面的跳转控制

  • 已经入需要进行鉴权的页面的跳转控制

针对第一种情况,可以在router的跳转事件hook中进行鉴权,之后根据鉴权结果,来决定是否跳转到当前目标路由。
针对第二种情况,如果是需要实时控制,可能需要移植socket相关的东西来支持,如果不需要实时控制,则与第一种情况类似,只不过是在跳转事件hook中对当前的路由进行鉴权而已。

后台处理用户名、用户角色、用户权限菜单

1、在登录页时获取用户信息,后端判定用户角色,返回 登录页面的state 或者是前端自己根据角色跳转不同的页面

2、颗粒元素是可以使用ng-if控制元素的隐藏,ng-if变量可以使用一个service存储该用户的权限

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题