美文网首页
权限控制功能设计

权限控制功能设计

作者: bddbzz | 来源:发表于2018-10-31 13:23 被阅读0次

我们搭建多用户多角色的业务系统,功能根据登录用户的权限来控制是少不了的。这里总结一下有关的设计。

首先,功能模块的划分,我们得整理一份映射表,存在数据库,配置文件,服务器内存皆可。最好统一存在服务端,这样前后端都有一个一致的mapping,变更的话也只用变更一个地方。

其次,登录授权的过程,前端登录成功获取当前用户的授权模块ID数组,这个数组存在全局变量,localstorage,sessionstorage皆可。前端还需要一个验证授权的公共方法提供给各个模块调用。

然后,登录成功我们一般进去一个管理首页,会加载功能菜单,可能有多级,这个时候要根据权限做一下过滤。SPA的web应用越来越多了,我们对路由的管理也更方便了,对后端的服务我们可以启用统一的拦截,比如401的时候提示没有权限,跳转登录或者前一个有效的路由。同时也要监听路由跳转,比如在angularjs的$stateChangeStart,如果是非法路由我们就阻止本次跳转。

如果我们的权限控制要求精确到模块的具体操作的话,那我们的UI得隐藏有关按钮,阻止有关方法的运行。在angularjs框架下,我们可以在权限按钮上加一个属性,比如fcode="01004",再写一个directive 解析这个fcode,判断无权限把元素直接移出文档。

最后,权限控制最关键还是后端服务得做好把控,前端只在UI和交互上做些合理的控制。另外对于权限互相依赖的情况,我们在权限设置界面可以做些关联判断,比如勾选编辑功能,查看功能也会默认勾选。如果不这样做的话,那么后端接口得做兼容,比如查看的方法,有编辑或者查看权限的用户都可以调用。

以上只是我个人的设计,可能太规矩了,欢迎各位指出漏洞或者提供新的思路。有关的源码放在我的github。

相关文章

  • 权限控制功能设计

    我们搭建多用户多角色的业务系统,功能根据登录用户的权限来控制是少不了的。这里总结一下有关的设计。 首先,功能模块的...

  • Vue权限控制

    需求 页面级别权限控制1.URL路由权限控制2.导航菜单权限控制3.超链接权限控制 元素界别权限控制1.按钮元素权...

  • 【黑马程序员济南校区】权限控制方式讲解

    【济南校区】权限控制方式讲解 权限控制两种主要的方式:细粒度方法级别的权限控制、粗粒度URL级别权限控制 1.1细...

  • django进阶技巧

    权限控制 在有较多方法需要权限控制时:可使用权限控制中间件,permissionMiddleWare 在只有少量方...

  • Java基础学习六 关键字

    java语言中的访问控制权限修饰符 访问控制权限修饰来控制元素的访问范围。 访问控制权限修饰符包括:public ...

  • php系列(五)权限控制的思考

    权限控制 说到权限控制,有人不明白为什么要单独设计权限模块,难道不能直接在代码里面直接写死一些权限的控制吗? 是的...

  • spring-boot-admin脚手架权限控制拦截器

    使用spring自定义拦截器来权限控制,实现基于restful的动态权限控制 精确到按钮级别的权限控制 1 用户登...

  • springboot整合springsecurity从Hello

    摘要:权限控制在我们的项目当中一般都有用到,有简单的登录就搞定的权限访问,也有分级身份的权限控制,而权限控制的方式...

  • 权限控制

    RBAC模式进行权限控制,即(Role-Based Access Control)基于角色的访问控制。实现权限访问...

  • 权限控制

网友评论

      本文标题:权限控制功能设计

      本文链接:https://www.haomeiwen.com/subject/hecatqtx.html