Appearance
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():
- 查用户 → 角色 → 角色权限 → permission codes(字符串列表)
- 签发 access / refresh Token
buildMenuTree(permissions, client)— 按权限与 client 过滤菜单
菜单过滤规则
- 叶子节点:须拥有
menu.permission对应权限码 - 目录节点(permission 为空):至少一个可访问子节点才保留
client字段:all/web/desktop,与请求client参数匹配GET /api/v1/system/menus管理端接口返回 全量 菜单树(不过滤)
client 参数
登录 / me 可传 client(如 web、desktop),用于过滤菜单树。前端 admin bootstrap 会传当前端类型。
登录日志
POST /auth/login成功/失败均写入sys_logininforGET /auth/me?recordLogin=true用于前端 Token 恢复 时补记登录(避免仅 refresh 无日志)- 管理端查看:Monitor — 登录日志
默认账号
通过 数据库初始化接口 写入:admin / admin123,admin 角色拥有全部权限。