# ⭐ FastAPI + Casbin RBAC + Vue3 + Element Plus权限系统(前后端全套)
## **一、项目基础 & 核心架构**
* [项目简介和架构](https://www.duoke360.com/tutorial/ai-qx/p1)
* [项目初始化和依赖文件](https://www.duoke360.com/tutorial/ai-qx/p2)
* [应用配置文件(config.py)](https://www.duoke360.com/tutorial/ai-qx/p3)
* [日志工具(logger.py)](https://www.duoke360.com/tutorial/ai-qx/p4)
* [请求日志中间件(request_log.py)](https://www.duoke360.com/tutorial/ai-qx/p44)
* [通用工具函数(common.py)](https://www.duoke360.com/tutorial/ai-qx/p30)
* [分页工具(pagination.py)](https://www.duoke360.com/tutorial/ai-qx/p45)
---
## **二、数据库 & 会话管理**
* [数据库会话管理(session.py)](https://www.duoke360.com/tutorial/ai-qx/p5)
* [数据库初始化(init_db.py)](https://www.duoke360.com/tutorial/ai-qx/p43)
---
## **三、模型层(Models)**
### 🔐 用户角色权限相关模型
* [用户模型(user.py)](https://www.duoke360.com/tutorial/ai-qx/p7)
* [角色模型(role.py)](https://www.duoke360.com/tutorial/ai-qx/p8)
* [菜单模型(menu.py)](https://www.duoke360.com/tutorial/ai-qx/p9)
* [权限模型(permission.py)](https://www.duoke360.com/tutorial/ai-qx/p10)
* [Casbin规则模型(casbin_rule.py)](https://www.duoke360.com/tutorial/ai-qx/p11)
* [操作日志模型(operation_log.py)](https://www.duoke360.com/tutorial/ai-qx/p12)
* [模型包初始化(**init**.py)](https://www.duoke360.com/tutorial/ai-qx/p13)
---
## **四、权限系统(Casbin + RBAC)**
### 📘 Casbin 配置
* [Casbin模型配置(rbac_model.conf)](https://www.duoke360.com/tutorial/ai-qx/p14)
* [权限配置文件(permissions.yaml)](https://www.duoke360.com/tutorial/ai-qx/p21)
* [Casbin初始化模块(casbin.py)](https://www.duoke360.com/tutorial/ai-qx/p22)
### 🔐 安全 & JWT
* [安全工具(security.py)](https://www.duoke360.com/tutorial/ai-qx/p6)
* [认证中间件(auth_middleware.py)](https://www.duoke360.com/tutorial/ai-qx/p39)
* [验证码工具(captcha.py)](https://www.duoke360.com/tutorial/ai-qx/p31)
---
## **五、Repository 数据访问层**
* [用户Repository(user_repository.py)](https://www.duoke360.com/tutorial/ai-qx/p15)
* [角色Repository(role_repository.py)](https://www.duoke360.com/tutorial/ai-qx/p16)
* [Casbin规则Repository(casbin_rule_repository.py)](https://www.duoke360.com/tutorial/ai-qx/p17)
* [菜单Repository(menu_repository.py)](https://www.duoke360.com/tutorial/ai-qx/p18)
* [权限Repository(permission_repository.py)](https://www.duoke360.com/tutorial/ai-qx/p19)
* [操作日志Repository(operation_log_repository.py)](https://www.duoke360.com/tutorial/ai-qx/p20)
---
## **六、Service 业务层**
* [用户Service(user_service.py)](https://www.duoke360.com/tutorial/ai-qx/p23)
* [角色Service(role_service.py)](https://www.duoke360.com/tutorial/ai-qx/p24)
* [认证Service(auth_service.py)](https://www.duoke360.com/tutorial/ai-qx/p25)
* [菜单Service(menu_service.py)](https://www.duoke360.com/tutorial/ai-qx/p26)
* [权限Service(permission_service.py)](https://www.duoke360.com/tutorial/ai-qx/p27)
* [Casbin规则Service(casbin_rule_service.py)](https://www.duoke360.com/tutorial/ai-qx/p28)
* [依赖注入(dependencies.py)](https://www.duoke360.com/tutorial/ai-qx/p29)
---
## **七、Handler 控制器层(API 接口)**
* [认证Handler(auth_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p32)
* [用户Handler(user_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p33)
* [角色Handler(role_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p34)
* [Casbin规则Handler(casbin_rule_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p35)
* [操作日志Handler(operation_log_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p36)
* [菜单Handler(menu_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p37)
* [权限Handler(permission_handler.py)](https://www.duoke360.com/tutorial/ai-qx/p38)
---
## **八、Main 程序入口 & 路由注册**
* [应用入口(main.py)](https://www.duoke360.com/tutorial/ai-qx/p40)
* [应用入口模块(**main**.py)](https://www.duoke360.com/tutorial/ai-qx/p46)
* [API路由注册(router.py)](https://www.duoke360.com/tutorial/ai-qx/p41)
* [公开路由注册(public_router.py)](https://www.duoke360.com/tutorial/ai-qx/p42)
---
# **九、前端(Vue3 + Vite + TypeScript)**
## **项目初始化**
* [前端项目初始化和配置文件](https://www.duoke360.com/tutorial/ai-qx/p47)
## **前端类型 & 工具**
* [类型定义文件(types)](https://www.duoke360.com/tutorial/ai-qx/p48)
* [请求工具(request.ts)](https://www.duoke360.com/tutorial/ai-qx/p49)
* [认证工具(auth.ts)](https://www.duoke360.com/tutorial/ai-qx/p50)
* [菜单工具(menu.ts)](https://www.duoke360.com/tutorial/ai-qx/p51)
## **前端 API 封装**
* [认证API(auth.ts)](https://www.duoke360.com/tutorial/ai-qx/p52)
* [用户API(user.ts)](https://www.duoke360.com/tutorial/ai-qx/p53)
* [角色API(role.ts)](https://www.duoke360.com/tutorial/ai-qx/p54)
* [菜单API(menu.ts)](https://www.duoke360.com/tutorial/ai-qx/p55)
* [权限API(permission.ts)](https://www.duoke360.com/tutorial/ai-qx/p56)
## **页面 & 布局**
* [路由配置(router)](https://www.duoke360.com/tutorial/ai-qx/p57)
* [应用入口(main.ts)](https://www.duoke360.com/tutorial/ai-qx/p58)
* [根组件(App.vue)](https://www.duoke360.com/tutorial/ai-qx/p59)
* [主布局(MainLayout.vue)](https://www.duoke360.com/tutorial/ai-qx/p60)
* [首页(Home.vue)](https://www.duoke360.com/tutorial/ai-qx/p69)
* [登录页面(Login.vue)](https://www.duoke360.com/tutorial/ai-qx/p61)
* [仪表盘(dashboard)](https://www.duoke360.com/tutorial/ai-qx/p62)
* [角色列表(RoleList.vue)](https://www.duoke360.com/tutorial/ai-qx/p63)
* [用户列表(UserList.vue)](https://www.duoke360.com/tutorial/ai-qx/p64)
* [菜单列表(MenuList.vue)](https://www.duoke360.com/tutorial/ai-qx/p65)
* [权限列表(PermissionList.vue)](https://www.duoke360.com/tutorial/ai-qx/p66)
* [404错误页面(404.vue)](https://www.duoke360.com/tutorial/ai-qx/p67)
* [全局样式(style.css)](https://www.duoke360.com/tutorial/ai-qx/p68)
---
# 🎉 **整套系统总结**
这是一套完整的 **FastAPI + SQLAlchemy + Casbin RBAC 后端权限系统**
配合 **Vue3 + TypeScript 前端后台管理系统**,包括:
✅ 后端分层(Model / Repository / Service / Handler)
✅ JWT + Casbin 权限控制
✅ 动态菜单 & 按钮级权限
✅ 完整日志系统
✅ 前端 Vue3 + TS + 组件化页面
✅ 全套接口封装 & 登录权限拦截
