liuyun b807cc7df8
Some checks are pending
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run
docs(spec): 归档 online-session-management + 同步 session 主 spec
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 21:38:24 +08:00

33 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Session Specification
## Purpose
定义在线会话域的行为:列出活跃会话、按单个会话强退、按用户踢全部会话。
## Requirements
### Requirement: 活跃会话列表
系统 SHALL 支持按用户名/昵称/IP 分页查询当前租户的活跃会话,返回用户名、昵称、设备 IP、User-Agent、登录时间、过期时间与会话标识;列表按数据权限过滤(仅可见本人权限范围内用户的会话,超管可见全部)。
#### Scenario: 分页查询活跃会话
- **WHEN** 管理员请求会话列表并传 page/pageSize 与筛选条件
- **THEN** 系统返回满足条件的活跃会话分页结果(仅含未过期、未吊销的 refresh token 对应会话)
#### Scenario: 数据权限过滤
- **WHEN** 数据权限为「本部门」的管理员查询会话列表
- **THEN** 仅返回本部门用户的活跃会话
### Requirement: 单会话强退
系统 SHALL 支持指定会话标识强退单个会话:吊销该会话的 refresh token,并使其 access token 在下次请求时被拒绝(401)。
#### Scenario: 强退单个会话
- **WHEN** 管理员对某会话标识执行强退
- **THEN** 该会话的 refresh token 被吊销,其 access token 在下次请求时返回 401
### Requirement: 踢全部会话
系统 SHALL 支持按用户踢出其全部活跃会话:吊销该用户所有 refresh token,并使其全部 access token 失效。
#### Scenario: 踢出用户全部会话
- **WHEN** 管理员对某用户执行踢全部会话
- **THEN** 该用户所有活跃会话的 refresh token 被吊销,全部 access token 失效