--- title: Base 模块 created: 2026-04-13 updated: 2026-05-15 type: entity tags: [module, auth, backend] sources: [packages/backend/src/modules/base/] --- # Base 模块 系统基础设施模块,提供用户认证、RBAC 权限、菜单管理、部门管理等核心能力。 ## 数据模型(11个表) | 表名 | 用途 | |------|------| | `base_sys_user` | 后台管理员 | | `base_sys_role` | 角色 | | `base_sys_menu` | 菜单和权限配置(树形) | | `base_sys_department` | 部门(树形) | | `base_sys_param` | 系统参数 | | `base_sys_log` | 操作日志 | | `base_sys_conf` | 系统配置 | | `base_sys_user_role` | 用户-角色关联 | | `base_sys_role_menu` | 角色-菜单关联 | | `base_sys_role_department` | 角色-部门关联 | ## 认证流程 JWT Token 认证: 1. 登录 → 返回 `token` + `refreshToken` 2. 请求头 `Authorization: Bearer {token}` 3. Token 过期 → 用 refreshToken 刷新 4. 前端拦截器自动处理刷新逻辑 ## 菜单驱动路由 前端路由由 `base_sys_menu` 表动态生成: - `type=0`:目录 - `type=1`:菜单页面(`viewPath` 指向 Vue 组件) - `type=2`:按钮权限(`perms` 标识如 `project:info:add`) ## 数据源管理菜单 2026-05-15 后,[[mysql-data-source]] 的管理入口放在“系统管理 -> 数据源管理”,路径为 `/sys/data-source`,视图为 `modules/base/views/data-source.vue`。 这个入口不是硬编码在前端静态路由里,而是依赖 Base 模块菜单表: - `packages/backend/src/modules/base/menu.json` 保存“数据源管理”种子菜单。 - `packages/backend/src/modules/base/event/menu.ts` 在后端启动时同步 `/sys/data-source` 到 `base_sys_menu`,并给 admin 角色补齐菜单权限。 - 前端通过 `/admin/base/comm/permmenu` 获取菜单后动态生成路由;`packages/frontend/src/modules/base/config.ts` 不再重复声明该静态页面。 因此如果页面看不到,优先检查 `base_sys_menu` 和角色菜单关系,而不是只看 Vue 文件是否存在。 ## 相关页面 - [[project-overview]] — 项目总览 - [[cool-admin-framework]] — 框架提供自动 CRUD - [[frontend-architecture]] — 前端动态路由 - [[mysql-data-source]] — 数据源管理菜单和配置页