1.7 KiB
1.7 KiB
title, date, categories, tags
| title | date | categories | tags | |||
|---|---|---|---|---|---|---|
| 通用权限管理项目 | 2025-02-21 |
|
|
前端
- 封装菜单、菜单项目,动态路由
- 封装http请求
- 封装弹窗
- 封装提示框
数据持久化插件
开始 | Pinia Plugin Persistedstate
动态路由
动态菜单
后端
角色
- 简单的增删改查
用户
- 简单的增删改查
- 和角色的一个联查
菜单
- 简单的增删改查
- 将菜单进行手动拼接成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)进行防止直接访问后端请求
