当前位置: 首页 > news >正文

权限系统笔记(一)、用户中心等

文章目录

      • 用户表
      • 角色表
      • 菜单表
      • 关系表-角色菜单表
      • 关系表-人员角色关系表
      • 数据权限的管理
    • 角色
        • 角色新增
        • 角色删除
        • 角色修改
        • 解绑用户
      • 角色菜单
    • 用户
        • 用户新增
        • 用户删除
        • 用户编辑
        • 用户查询(不涉及权限联动,略)
    • 其他
      • web端和h5端的权限过滤
        • 效率问题

权限系统(用户中心)是一套核心的系统,有很多技巧和套路。

用户表

CREATETABLE`t_user`(`id`int(11)NOTNULL,`username`varchar(255)NOTNULL,`password`varchar(255)NOTNULL,PRIMARYKEY(`id`),UNIQUEKEY`username_unique`(`username`))

角色表

t_role

菜单表

t_resource

关系表-角色菜单表

t_role_resource

关系表-人员角色关系表

t_user_role_authz

数据权限的管理

如果只涉及到本人数据,和本机构数据,那么不用建表,通过逻辑就能够控制。
如果要自定义机构数据,需要建表。而且比较麻烦,只能以平面的方式展示。

这里有点麻烦,例如有1万个用户,1000家机构,平面展示,就是1000万条数据。 有什么好的方法么?

微博中就是以这种平面式设计的,但是那么多用户肯定分区了,否则性能一定会很差。

角色

角色主要是和功能菜单建立关系。

角色新增

1、角色表新增记录或编辑信息。
2、角色菜单表添加记录(可多条)。
3、auth关系表无需操作。(因为这里还不涉及到人)

角色删除

1、角色表删除。
2、角色菜单表删除对应信息。
3、auth关系表删除该角色对应信息。

角色修改

1、角色表新增记录或编辑信息。
2、角色和菜单表联动。
3、auth关系表需要操作,角色添加菜单不用操作此表,但是去掉菜单需要操作此表。auth关系表去掉该(角色不再绑定的菜单)。 # 这一步操作可以省略掉。

重点肯定是第二步。
见过比较好的实践:
点编辑,全量菜单,根据已授权的标记为1。
点保存,已标记的全都传给后台。删除该角色下所有菜单,再新增传过去的即可。

解绑用户

这个功能也不多余,某个角色想去掉某个用户,难道只能到用户编辑里面吗?
当然不是,从角色这里应该直接可以。
auth关系表去掉该(角色+用户)的信息即可。

角色菜单

这个表看上去有点鸡肋,实际很有作用。
1、编辑角色菜单。
2、给用户授权时,

用户

单表操作没什么说的,主要是权限相关。

用户新增

1、用户表信息新增。
2、配置角色(至少一个默认角色,否则啥也看不到)。
3、auth关系表联动。

用户删除

1、删除用户表信息。
2、删除auth关系表该用户信息。

用户编辑

1、用户表信息修改。
2、auth关系表联动。例如角色的增减及机构的增减。

用户查询(不涉及权限联动,略)

其他

web端和h5端的权限过滤

之前这个问题想破脑袋,因为cookie不够优雅,而且代码乱糟糟。

后来经历过多个项目,是有现成的套路的。
比较好的方案是filter,
ignore-path-patterns # 忽略的地址
include-path-patterns # 包含的地址
当然也会有默认规则。

忽略的地址不拦截,例如/interface接口默认不拦截。

那么拦截到以后如何校验权限呢?
很简单,将token发送给用户中心单点登录校验。
推荐做成可配置的形式。

sso.url=单点地址sso.key=单点key

这样就实现了拦截。

效率问题

之前用过的用户中心卡的要死,后来经过了一大波优化,速度快了很多,想知道是如何优化的。
这里要扣操作细节。
例如:
人员编辑,100个角色1000家机构,从第99个角色中去掉第998个机构的数据。
如何快速的落到库里。

http://www.jsqmd.com/news/1328538/

相关文章:

  • 朱雀 AIGC 检测官网是什么?正确入口查 AI 率,别进了山寨降 AI 率网站
  • 众智商学院CPPM授权资质怎么核验? - 众智商学院职业教育
  • 音乐解锁工具:3步让加密音乐重获自由,完全本地处理保护隐私
  • 为什么易连EDI–EasyLink是国外EDI软件信创国产化替代的最佳选择?
  • 郑州芬尼专卖店哪家专业:【芬尼】**认证 - 17328623207
  • 终极免费NVIDIA显卡优化神器:如何用NVIDIA Profile Inspector提升游戏性能
  • 泛型的使用、PECS原则
  • 别再迷信“参数越大越聪明“
  • 如何快速优化macOS鼠标体验:终极平滑滚动与按钮自定义指南
  • 论文答辩备考攒了12小时参考讲座视频2026实测免费视频总结工具免费额度够用吗
  • UEViewer:高效提取Unreal Engine游戏资源的终极解决方案
  • 【图像识别】基于模板匹配算法实现车辆出入库计时matlab系统
  • Unity热更新实战:YooAsset与HybridCLR双核框架搭建指南
  • 为什么新店开业要3个月?数字化中台实现“开箱即用”能力
  • qmcdump:3分钟掌握QQ音乐加密格式无损转换技术
  • 4步实现跨平台Steam创意工坊模组下载完整方案
  • 实测测评|新媒体营销方案 PPT 怎么做?智在 PPT 真实上手,不吹不黑
  • Unity图集切割实战:基于Texture2D.SetPixel的离线资源处理工具
  • 如何快速掌握绝区零一条龙:新手必备的完整使用教程
  • 数据标注有“三集”:训练集、验证集、测试集到底有什么区别?
  • 2026暑假老师效率助手:跳绳阅读练字打卡,作业收集批改全搞定
  • 无断链三维轨迹重构与战场情报溯源
  • 十万个why:为什么做RAG 最怕的,不是检索失败,是明令禁止瞎答,它还硬编答案
  • 屈原:世人只知屈原投江,却不知他的楚辞,是华夏浪漫文学的起点
  • 【信息科学与工程学】【数据中心】计算机科学与自动化——第三百零五篇 数据中心 Scale-Up、Scale-Out、Scale-Across101 芯片接入数据中心129
  • 杭州专业的蜂窝板材厂家怎么选?看工艺与交付更靠谱 - 热点品牌推荐
  • 2026徐州靠谱家装企业盘点,本土老牌徐州大自然装饰公司 - 招财兔数字员工
  • 网站时光机HTTrack:3分钟掌握离线浏览与数据备份终极指南
  • 英雄联盟Akari助手:免费开源的游戏效率工具,提升你的操作水平300%
  • 掌握谈判主动权,从读懂这本经典谈判书籍开始