33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
# 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 失效
|