Appearance
我的会话 (多设备管理)
路由:
/me/sessions· scope:self· 状态: ✅ F01 §12 已上线
列出当前账号在 admin web 的全部活跃登录, 一键踢掉其他设备 (例: 丢了手机 / 怀疑别人偷登 / 在网吧登过忘退)。撤销立即生效 (Redis blocklist + pg_notify 跨进程同步, 不依赖 token 自然过期)。
用途
- 看自己当前在哪几台设备 / 浏览器登着 知办AI admin
- 远程踢掉非当前设备
- 检测异常登录 (来自不熟悉 IP / User-Agent)
- impersonate (代入模式) 检查: 有红色「代入模式」标签的会话是别人代你在登
前提
- 已用任意身份登录 admin web (本菜单对所有 sys-users / members 开放, 无需角色)
进入路径
右上头像下拉 → 「我的会话」, 或地址栏直接 /me/sessions
页面结构 (对齐 apps/agent-bus-admin/src/pages/MySessions.tsx)
页面标题: 「我的会话 (多设备管理)」+ 副标题说明撤销机制。
主列表 6 列:
| 列 | 说明 |
|---|---|
| 设备 / User Agent | 浏览器 UA 字符串 (hover 看完整); 如果是代入模式, 下方红色标 代入模式 (<actingAs>) |
| IP | 登录来源 IP, 等宽字体, 没记到则「—」 |
| 登录时间 | session issuedAt 时间, 本地时区 |
| 最近使用 | session lastUsedAt 时间, 本地时区 |
| 状态 | 蓝色「当前会话」(本页所在设备) 或绿色「活跃」(其它设备) chip |
| 操作 | 非当前会话有红色 trash icon「踢掉这台设备」; 当前会话无操作 |
截图位:

空列表: 居中 Monitor icon + 「没有活跃 session」(实际上至少有当前会话, 这个分支是兜底)。 加载中: 「加载中…」灰字。
操作步骤
踢掉某台设备
- 列表行 (非「当前会话」) → 操作列 trash icon
- 弹
confirm()原生对话框: 「确认踢掉这台设备? 该设备上 admin 会立即被拒, 需要重新登录。」 - 「确定」→ 后端调
DELETE /api/admin/v1/me/sessions/{uuid}→ 立即:- 该 session uuid 写 Redis blocklist
pg_notify跨 bus/admin-api 进程同步- 列表刷新, 该行消失
被踢的设备下一次请求 admin-api → 401, 跳回 /login。
看代入模式 (是否被人代入)
如果某行下方有红色「代入模式 (X)」标签, 表示有人正以 X 身份 impersonate 你或你正在 impersonate X。
- impersonate 由 [F01 §10] 平台管理员发起, 走真实临时
role_assignment, 会留审计 - 看到不该看到的代入要立刻「踢掉」+ 联系平台 admin
字段约束
- 当前会话 (
s.isCurrent = true) 不能踢自己 (UI 隐藏 trash 按钮; 后端拒绝) - 撤销立即生效, 但页面上需要点列表才能看到新状态 (有 useEffect 自动 refresh)
相关 API
GET /api/admin/v1/me/sessions— 列表DELETE /api/admin/v1/me/sessions/{uuid}— 撤销- 撤销后端走 Redis blocklist +
pg_notify跨进程同步, 见 [F01 §12]
相关菜单
- 改个人资料: 个人资料
- 平台 admin 跨账户会话查询:后续由审计 handbook 补充。
常见问题
Q: 踢自己当前设备能让别处「我」继续在? A: 当前会话没踢按钮 (UI 隐藏 + 后端拒)。只能踢「其它设备」。
Q: 列表为什么没刷新? A: 撤销成功后会自动 setTick→ useEffect 重新拉; 网络问题或 hook 没触发, 手动刷新整个页面。
Q: 「代入模式」标签什么时候出现? A: 当某条 session 是 impersonate 模式发起的 — session 的 actingAs 字段非空时 (例 actingAs="acme-corp:bob@acme.com")。impersonate 操作有审计 audit_events.kind = 'impersonate.start' / .end。
Q: 看到陌生 IP 来自境外? A: 立刻踢掉 + 改密 ([forgot password] 流程) + 通知平台 admin 审计。