Appearance
认证与 RBAC
认证与 RBAC 是 MiniAdmin 的访问控制基础,覆盖登录、用户、角色、菜单、按钮权限和权限诊断。
登录认证
后端使用 JWT 认证。登录成功后,前端保存访问令牌,并在后续接口请求中携带令牌。
相关能力:
- 用户名密码登录。
- 当前用户信息查询。
- 修改密码。
- 登出。
- 登录日志。
- 在线用户。
- 多会话管理和会话失效。
用户管理
用户管理用于维护后台账号。
常见字段:
- 用户名。
- 昵称。
- 手机号或邮箱。
- 状态。
- 部门。
- 岗位。
- 角色。
二开建议:
- 不要把业务资料硬塞进用户表。
- 业务扩展信息建议建独立表,通过
UserId关联。 - 密码、锁定、状态变更应记录审计日志。
角色和菜单
角色用于组织权限,菜单用于控制前端可见页面和按钮。
权限链路:
mermaid
flowchart LR
A["用户"] --> B["角色"]
B --> C["菜单权限"]
C --> D["前端动态路由"]
C --> E["按钮权限"]
E --> F["后端接口授权"]权限命名
推荐格式:
text
module:resource:action示例:
text
system:user:query
system:user:create
workflow:center:approve
notification:policy:update数据权限
数据权限用于控制用户能看到哪些组织范围的数据。
常见范围:
- 全部数据。
- 本部门数据。
- 本部门及下级部门数据。
- 仅本人数据。
- 自定义部门数据。
二开业务模块时,如果数据天然属于某个部门或用户,应在查询层接入数据范围过滤。
接口限流
后端内置 ASP.NET Core RateLimiter,默认启用:
- 全局接口限流:默认每个用户或 IP
600 次 / 60 秒。 - 登录接口限流:默认每个 IP
10 次 / 60 秒,用于降低撞库风险。 - 上传接口限流:默认每个用户或 IP
4个并发上传。 - 命中限流时返回
HTTP 429 Too Many Requests,响应体仍保持统一ApiResponse格式。
生产环境如果前面有 Nginx、CDN 或 1Panel 反向代理,建议同时在网关层配置基础限流。应用层限流是最后一道兜底,具体配置见 部署上线。
权限诊断
权限诊断用于解释“为什么看不到菜单或按钮”。
排查顺序:
- 用户是否拥有角色。
- 角色是否分配菜单。
- 租户套餐是否允许该菜单。
- 缓存是否需要刷新。
- 前端是否重新登录加载了最新菜单。