Skip to content

Java Auth 与菜单

AuthController

前缀:/api/v1

方法路径鉴权说明
GET/health公开健康检查
POST/auth/login公开登录,写入登录日志
POST/auth/refresh公开用 refreshToken 换新 session
POST/auth/logout登录登出
GET/auth/me登录当前用户完整 session(user/roles/permissions/menus)
GET/auth/profile登录个人资料
PUT/auth/profile登录更新个人资料
POST/auth/change-password登录修改密码

实现:auth/controller/AuthController.java

LoginResponse 构建

AuthService.buildLoginResponse()

  1. 查用户 → 角色 → 角色权限 → permission codes(字符串列表)
  2. 签发 access / refresh Token
  3. buildMenuTree(permissions, client)按权限与 client 过滤菜单

菜单过滤规则

  • 叶子节点:须拥有 menu.permission 对应权限码
  • 目录节点(permission 为空):至少一个可访问子节点才保留
  • client 字段:all / web / desktop,与请求 client 参数匹配
  • GET /api/v1/system/menus 管理端接口返回 全量 菜单树(不过滤)

client 参数

登录 / me 可传 client(如 webdesktop),用于过滤菜单树。前端 admin bootstrap 会传当前端类型。

登录日志

  • POST /auth/login 成功/失败均写入 sys_logininfor
  • GET /auth/me?recordLogin=true 用于前端 Token 恢复 时补记登录(避免仅 refresh 无日志)
  • 管理端查看:Monitor — 登录日志

默认账号

通过 数据库初始化接口 写入:admin / admin123,admin 角色拥有全部权限。

相关文档

Xichen Full Stack 内部文档