Appearance
auth — adminLogin(3 action)
前缀:
/api/v1/admin/auth/代码:src/app/admin/interface/api/auth.py+application/usecase/admin_login.py+admin_session.py权限:login 公开;me / logout 任意已登录 admin(admin:me/admin:logout— 三角色共享)
3.1.1 login —— 用户名密码登录
POST /api/v1/admin/auth/login
请求 body:
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
username | string | ✅ | — | admin 账号(dev 种子:admin / admin_ops / admin_it) |
password | string | ✅ | — | 密码(scrypt 哈希校验) |
clientId | string | ⬜ | admin-web | 会话标识(透传 token 服务) |
响应 data:
| 字段 | 类型 | 说明 |
|---|---|---|
tokens.access | string | admin access token(后续 Bearer) |
tokens.refresh | string | refresh token |
user.id | string | admin id |
user.username | string | 账号名 |
user.role | string | super | operator | it |
user.status | string | active | … |
user.email | string | null | 邮箱 |
tokenExpiring | bool | 恒 false(admin 无滚动续期) |
错误码:
| code | HTTP | 场景 |
|---|---|---|
40201501 | 200 | 用户名或密码错误(LOGIN_FAILED) |
40201006 | 403 | 账号被封禁(USER_BANNED) |
dev 种子账号:admin/admin123(super) · admin_ops/ops12345(operator) · admin_it/it123456(it)
3.1.2 logout —— 登出
POST /api/v1/admin/auth/logout(Bearer access)
请求 body:无(ip / ua 服务端从请求头采集)
响应 data:
| 字段 | 类型 | 说明 |
|---|---|---|
success | bool | 恒 true |
audit_written | bool | audit ADMIN_LOGOUT 是否留痕(ADR-0010 必写) |
P1 无状态 JWT 不做服务端撤销(P2 接 Redis 黑名单);前端本地清 token 即完成登出。
3.1.3 me —— 当前 admin 信息
GET /api/v1/admin/auth/me(Bearer access)
响应 data:
| 字段 | 类型 | 说明 |
|---|---|---|
admin.id | string | admin id |
admin.username | string | 账号名 |
admin.role | string | 角色 |
admin.status | string | 状态 |
admin.email | string | null | 邮箱 |
admin.permissions | string[] | RBAC 权限清单(如 ["dashboard:read", "user:ban", …],由此驱动前端菜单显隐) |
admin.last_login_at | string | null | ISO 时间 |
错误码:40201002(401)token 无效 / admin 不存在(如已删号)。