Files
OneMD/posts/blog/工作/项目/通用权限管理项目.md
T
2026-06-19 14:45:07 +08:00

1.7 KiB
Raw Blame History

title, date, categories, tags
title date categories tags
通用权限管理项目 2025-02-21
工作
项目
项目

前端

  • 封装菜单、菜单项目,动态路由
  • 封装http请求
  • 封装弹窗
  • 封装提示框

数据持久化插件

开始 | Pinia Plugin Persistedstate

动态路由

image 44.png

动态菜单

后端

角色

  • 简单的增删改查

用户

  • 简单的增删改查
  • 和角色的一个联查

菜单

  • 简单的增删改查
  • 将菜单进行手动拼接成Tree

简单的增删改查

  • 将数据库表映射成对象
  • 编写通用增加接口: int add(T t)
  • 动态sql

  • 编写通用修改接口: int edit(T t)
  • 动态Sql

  • 通过id删除:int delete(int id)

  • 普通查询
  • 分页:pagehelper

对于菜单分配的设计问题

角色查看分配菜单

方案一(role_id

  • 返回角色对应的菜单id(表示选中)
  • 直接返回==所有菜单==(树结构)
  • 优点:简单
  • 缺点:用户可以看到所有权限,并可以进行修改

方案二(user_id,role_id

  • 返回角色对应的菜单id(表示选中)
  • 返回==用户对应的菜单====(树结构)==
  • 优点:用户只可以看见自己的权限,并且修改也只可以在此基础上
  • 缺点:需要设置是否是为管理员字段(保证至少一个显示完整菜单)

后端进阶

  • 验证码图片生成

持久化数据

  • 持久化token、持久化userId、userName

SpringSecurity

基于一种维持会话的方式(session、jwt)进行防止直接访问后端请求