Appearance
Python Auth 与菜单
路由:app/api/v1/auth.py
服务:app/services/auth_service.py
端点
| 方法 | 路径 | 鉴权 | 说明 |
|---|---|---|---|
| GET | /api/v1/health | 公开 | 健康检查 |
| POST | /api/v1/auth/login | 公开 | 登录,写入登录日志 |
| POST | /api/v1/auth/refresh | 公开 | refreshToken 换新 session |
| POST | /api/v1/auth/logout | 登录 | 登出 |
| GET | /api/v1/auth/me | 登录 | user + roles + permissions + menus |
| GET | /api/v1/auth/profile | 登录 | 个人资料 |
| PUT | /api/v1/auth/profile | 登录 | 更新个人资料 |
| POST | /api/v1/auth/change-password | 登录 | 修改密码 |
LoginResponse
AuthService 构建流程(与 Java 一致):
- 用户 → 角色 →
permissions(字符串列表) - 签发 access / refresh JWT
_build_menu_tree(permissions, client)— 按权限与 client 过滤菜单
client 参数
login / me 可传 client(web、desktop 等),对应 core/menu_client.py 过滤逻辑。
recordLogin
GET /auth/me?recordLogin=true — 前端 Token 恢复时补记登录日志(与 Java 对齐)。
菜单过滤
- 叶子:须拥有
menu.permission对应权限码 - 目录:至少一个可访问子节点才保留
GET /api/v1/system/menus返回全量树(管理端)
登录日志
- 登录成功/失败写入
sys_logininfor - 查看:Monitor — 登录日志