一、前言

  随着信息化系统的普及,信息安全愈发的重要,企业对于信息的保密程度越来越高。程序员面临的压力开始逐步递增。

   而作者作为“码农”,也深深的体会到这一点。

   随着公司业务的发展,作者所在公司的权限系统,已经完全不能满足公司的发展需求,急需做一个精度更高的权限划分系统。

   根据分析公司传统的权限设计模式(ACL、RABC)已经不适合在做二次开发。于是作者就开始着手规划一套全新的权限管理系统,OverallAuth因此诞生。

# 开箱即用

  码友可以放心大胆的使用,本项目的前后端,都是作者从0到1完全独立搭建。

  **如果你不想花时间写一套权限系统,那么就下载使用吧**

  说明:数据库文件在qq群:801913255,因为更新频繁,就不放在这里了

二、️OverallAuth统一权限分发中心

  在解决公司权限分配的问题后,我决定把OverallAuth系统改造下,做成一个开源的权限管理系统,给与需要帮助的人提供思路和解决方案。

   在不断的完善下,OverallAuth统一权限分发中心,可以支撑多公司、多系统的权限分发系统。️它简单、高效、易懂️,新手也能轻松上手。

   话不多说,我们来大致看下,OverallAuth统一权限分发中心具备哪些权限功能。

  

三、JWT 鉴权

    jwt不比多说,相信大多数人都懂,是一种安全的传输协议标准,在OverallAuth中,作者使用它来用户认证和鉴权。

四、角色权限

  区别于传统的角色权限(ACL),作者在设计时,把角色分了等级(就像树形结构),上级角色会继承下级角色的所有权限。

   这样成功的避免了随着用户增多,角色也出现暴增、冗余、错乱的情况。大大降低了维护成本。

   如下图所示:

  到这里,可能有人会问,为什么不直接勾选【用户管理员】、【普通用户1】、【普通用户2】。当然这样确实可以,但数据库存储关系会多出不少数据,而且会影响之后的权限划分(特别是数据行、数据列等权限)。

  不过在这里,确实会存在一个问题。因为角色的继承关系,勾选【用户管理员】后,会继承【普通用户1】、【普通用户2】角色权限它属于强制行为。那么当【用户管理员】不需要【普通用户2】的权限时,这种问题将不能避免。这个问题作者已经规划如何解决。

五、菜单权限

  在设计上,菜单权限依然是通过角色来确定。如下图:

  

六、菜单按钮权限

  为了精准的权限划分,在OverallAuth中,按钮分为2中类型:即【菜单按钮】和【数据按钮】

  如下图所示:

  

  当一个角色被赋予某一个菜单时,并不意味着这个菜单中的所有数据和按钮都能查看和使用。我们还需要进行颗粒级别的授权。菜单按钮就是其中之一。

  如何分配【菜单按钮权限】,如下图

  

需要源码的,关注公众号,发送【权限】获取源码

以上就是本篇文章的全部内容,感谢耐心观看

后端WebApi 预览地址:http://139.155.137.144:8880/swagger/index.html

前端vue 预览地址:http://139.155.137.144:8881

关注公众号:发送【权限】,获取源码

有兴趣的朋友,请关注我微信公众号吧(*^▽^*)。

关注我:一个全栈多端的宝藏博主,定时分享技术文章,不定时分享开源项目。关注我,带你认识不一样的程序世界

OverallAuth权限管理系统,超精度权限划分(第一篇:功能级权限)。的更多相关文章

  1. Asp.Net Core 项目实战之权限管理系统(7) 组织机构、角色、用户权限

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. Asp.Net Core 项目实战之权限管理系统(5) 用户登录

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  3. Asp.Net Core 项目实战之权限管理系统(8) 功能菜单的动态加载

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  4. SpringSecurity权限管理系统实战—四、整合SpringSecurity(上)

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  5. Asp.Net Core 项目实战之权限管理系统(4) 依赖注入、仓储、服务的多项目分层实现

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  6. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  7. Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  8. Asp.Net Core 项目实战之权限管理系统(2) 功能及实体设计

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  9. Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  10. Asp.Net Core 项目实战之权限管理系统(6) 功能管理

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

随机推荐

  1. Intellij, target JRE vesion doesn't match project jdk version

    gradle 项目修改这里的gradle jvm

  2. js判断iOS还是Android

    /** * 运行设备引擎, 即iOS, Android还是H5 * 返回值注意大小写 * @return iOS, Android, H5 */ function engineType() { let ...

  3. python 3 No module named ‘Crypto‘ 解决方案

    pip3 install pycryptodome pip3 install crypto Pip3 install pycrypto 本机(mac)环境的解决方案: pip3 uninstall p ...

  4. 揭秘AI自动化框架Browser-use(三):Browser-use控制浏览器的核心机制

    1. 概述 在Browser-use框架中,核心任务是使大模型能够像人类一样操作浏览器.本文深入探讨大模型如何实际控制浏览器,重点解析从模型输出到浏览器动作执行的完整流程. 上一篇(公众号首发)-Br ...

  5. 【经验】微信小程序开发 云后台比价(自带云开发、leancloud、bmob)(2022/10/31更新)

    目录 前言 1. 免费配额 2. 超过额度时收费情况 3. 另外的价钱 总结 前言 作为前端开发者,没有购买云服务器的习惯,在只需要使用数据库的情况下,开发微信小程序完全可以用现在免费的云后台. 常用 ...

  6. 【BUG】vite build、Flask运行后报错Failed to load module script. Strict MIME type checking is enforced

    解决方案来源于Stack Overflow. 翻译来源于javascript - Python Flask - 错误 : "Failed to load module script. Str ...

  7. (dify)如何使用dify自定义知识库【dify外部链接知识库】

    尝试dify自定义知识库 根据官网教程,可以从知识库的右上角外部知识库进行添加外部知识库 前往 "知识库" 页,点击右上角的 "外部知识库 API",轻点 &q ...

  8. 操作系统:虚拟机内核--KVM是什么

    随着云计算.大数据和分布式技术的演进,我们需要在一台服务器上虚拟化出更多虚拟机,还要让这些虚拟机能够弹性伸缩,实现跨主机的迁移. 而虚拟化技术正是这些能力的基石. 亚马逊.阿里.腾讯等知名公司用到的云 ...

  9. anaconda 报错之Solving environment: failed

    1问题: 在新电脑上重装了anaconda,发现创建一个新环境都报错"Solving environment: failed",已经添加了清华源,还是报错,查找了很多答案都不能解决 ...

  10. TPLINK路由器重启脚本(软件版本3.0.0)

    ​ 家中的两个路由器全都是TPLink路由器,由于总出现时间一长就网卡的原因,写了这个重启脚本在每天凌晨五点的时候对路由器进行自动重启 使用方法: ​ self.logindata的值为登录时的jso ...