身份与权限

角色与权限模型

单权限表承载目录/菜单/按钮/接口,多角色 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编辑此页 →