角色与权限模型
单权限表承载目录/菜单/按钮/接口,多角色 RBAC,注解是唯一事实源。
模型
一张权限表承载目录 / 菜单 / 按钮 / 接口四类节点,用户与角色多对多。按钮与它背后的接口共用同一个权限码,中间不需要任何映射配置。
| 表 | 作用 |
|---|---|
sys_user | 用户主表,权限体系的根 |
sys_role | 角色 |
sys_user_role | 用户与角色的多对多关系 |
sys_permission | 权限码契约层:按钮与接口 |
sys_role_permission | 角色与权限码的授权关系 |
sys_menu | 展示层:目录与菜单的显隐与顺序 |
sys_user_identity | 第三方登录身份(微信 unionid/openid、QQ openid) |
提示:权限码是契约层,菜单只是展示层:显隐判据是权限码,菜单只决定"放在哪里、按什么顺序"。
鉴权
- 后端
@SaCheckPermission是唯一事实源;前端只做显隐,不做权限判定。 - 默认拒绝:未标注鉴权的接口启动即失败,不会"忘记配就变成公开接口"。
- 未登录返回固定错误码,无权限返回固定权限错误码——不会落到"系统繁忙"兜底。
登录方式
- 账号密码:密码方案固定为 BCrypt,不提供弱哈希选项。
- 邮箱验证码:验证码用
SecureRandom,发信能力收口在infra/mail。 - 第三方登录:微信 / QQ 抽象为统一身份接口,不引入额外安全框架。
相关
最后更新 2026-10-09编辑此页 →