3.0 KiB
3.0 KiB
Mini RBAC 系统
Python(FastAPI)
、VUE3
实现,仅保留核心权限控制的极简后台管理。
相关视频:https://www.bilibili.com/video/BV1mP411H7PL/
项目说明文档
1. 数据库模型
1.1 用户表 (sys_user)
- username: 账号 (唯一)
- nickname: 姓名
- password: 密码
1.2 角色表 (sys_role)
- name: 角色名称
- remark: 角色描述
1.3 菜单表 (sys_menu)
- name: 名称
- icon: 菜单图标
- path: 菜单url
- type: 菜单类型 (0目录 1组件 2按钮 3数据)
- component: 组件地址
- pid: 父id
- identifier: 权限标识 (如user:add)
- api: 接口地址
- method: 接口请求方式
1.4 关系表
-
用户角色关系表 (sys_user_role)
- uid: 用户id
- rid: 角色id
-
角色菜单关系表 (sys_role_menu)
- rid: 角色id
- mid: 菜单id
2. API接口
2.1 认证相关
- POST /login 用户登录
- GET /ws WebSocket系统信息
2.2 用户管理
- GET /user 用户列表
- POST /user/query 用户查询
- POST /user 用户新增
- DELETE /user/{pk} 用户删除
- GET /user/{pk} 用户信息
- PUT /user/{pk} 用户更新
- PUT /user/role/{rid} 用户切换角色
2.3 角色管理
- GET /role 角色列表
- POST /role/query 角色查询
- POST /role 角色新增
- GET /role/{rid}/menu 查询角色权限
- DELETE /role/{pk} 角色删除
- PUT /role/{pk} 角色更新
2.4 菜单管理
- POST /menu 菜单新增
- GET /menu 菜单列表
- DELETE /menu/{pk} 菜单删除
- PUT /menu/{pk} 菜单更新
3. 技术栈
3.1 后端
- Python 3.x
- FastAPI (Web框架)
- Tortoise ORM (ORM框架)
- Uvicorn (ASGI服务器)
- Gunicorn (WSGI服务器)
- bcrypt (密码加密)
- python-jose (JWT认证)
3.2 前端
- Vue 3 (前端框架)
- Pinia (状态管理)
- Vue Router (路由管理)
- Ant Design Vue (UI组件库)
- ECharts (图表库)
- Vite (构建工具)
- Axios (HTTP客户端)
4. 网页页面
4.1 主要页面结构
- 登录页 (login)
- 主页面 (main)
- 仪表盘 (dashboard)
- 系统管理
- 用户管理 (user)
- 角色管理 (role)
- 菜单管理 (menu)
- 测试页面 (test)
4.2 页面功能
- 登录认证
- 用户管理:增删改查、角色分配
- 角色管理:增删改查、权限分配
- 菜单管理:增删改查
- 仪表盘:系统信息展示
- WebSocket实时数据更新
4.3权限控制
- 前端菜单权限控制
- 前端路由权限控制
- 前端按钮权限控制
- 后端接口权限控制
备注
原项目地址:https://github.com/zy7y/mini-rbac
本人学习全栈项目时clone了这个项目作为参考,同时优化了readme文件,未违反mit开源协议