在网上找了很多资料,还是没整理出来怎么去实现这一块?
项目需要在后台根据不同角色的人登录有俩块需要实现权限控制:
1、根据角色权限的不同进入对应的路由页面。
2、根据角色权限的管理对UI颗粒元素进行对应的显示隐藏或者相关操作。
这一块,具体思路应该怎么走。
在网上找了很多资料,还是没整理出来怎么去实现这一块?
项目需要在后台根据不同角色的人登录有俩块需要实现权限控制:
1、根据角色权限的不同进入对应的路由页面。
2、根据角色权限的管理对UI颗粒元素进行对应的显示隐藏或者相关操作。
这一块,具体思路应该怎么走。
后台处理用户名、用户角色、用户权限菜单
1、在登录页时获取用户信息,后端判定用户角色,返回 登录页面的state 或者是前端自己根据角色跳转不同的页面
2、颗粒元素是可以使用ng-if控制元素的隐藏,ng-if变量可以使用一个service存储该用户的权限
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
大体思路就是维护一个全局的权限配置对象和与之对应的鉴权系统。这两个东西分别解决你需要中的2和1。
权限配置对象可以实现在$rootScope上,或者构造一个专门的service来维护它,如果是多个模块的权限,可能需要构造为factory。有了全局对象,那么对于页面元素的隐藏和操作相关的逻辑,都使用全局对象的具体属性来控制。
鉴权系统的话,其实就是一系列映射关系的解析,既然你是针对路由的跳转控制,那么这个鉴权系统会涉及两方面的控制:
未进入需要进行鉴权的页面的跳转控制
已经入需要进行鉴权的页面的跳转控制
针对第一种情况,可以在router的跳转事件hook中进行鉴权,之后根据鉴权结果,来决定是否跳转到当前目标路由。
针对第二种情况,如果是需要实时控制,可能需要移植socket相关的东西来支持,如果不需要实时控制,则与第一种情况类似,只不过是在跳转事件hook中对当前的路由进行鉴权而已。