H6.06.2remote revocation of a single session设计研究

需能远程终止单个会话

别名: 踢出设备 · revoke session · 远程退出

概念解释

看见陌生会话之后,人需要能只结束那一条,而不必改密码、不必把所有设备一起踢下线。远程终止单个会话指服务器立刻作废该会话的刷新与访问令牌,目标设备在下一次请求时回到未登录,其它会话保持。这条管选择性作废,不管列表长什么样,也不管异常登录要不要推送。它也不是本机点「退出」——本机退出是另一条路径。

机制

令牌一旦发到设备上,持有者不必再证明身份。卖旧手机、共享电脑、被偷的平板,都留下一条仍被承认的授权。只提供「退出所有设备」会把本人的电脑一并踢掉,代价高到人不敢用;只提供改密则把一次设备丢失升级成全账号危机。单条终止把补救粒度对齐到威胁粒度。作废必须在服务端生效:只删列表上的一行、令牌仍能调 API,是假终止。目标设备上应出现「已在其他地方退出」而不是像网络错误,否则人以为是故障而反复登录,把新令牌又发回去。

怎么研究

布置一条「不该再活着」的会话,比较单条终止、全部终止、只能改密三种补救,看威胁会话是否死、本人会话是否还在。

自变量:终止粒度(单条、全部、无)、作废是否含刷新令牌、目标设备的提示文案。 因变量:被终止会话的后续 API 是否仍成功、本人其他设备是否仍登录、人是否敢对陌生条目采取行动。

实验室里两条会话都是被试自己的,情感代价低。真实威胁下人会害怕点错。测量要包含「指错当前会话并终止」的误伤。不要把「列表上消失」当成功——要打那条令牌的真实请求。

边界

当前会话的终止就是本机退出,按钮应避免让人在列表里踢自己时没有确认。有的刷新令牌被做成不可单独吊销的家族,工程上必须能按会话 ID 吊销,否则这条交互无法兑现。企业设备合规可能禁止用户自行踢掉托管会话,入口应说明要找管理员。密码重置后作废全部会话是找回流程的保险,不能替代日常的单条踢出。

怎么落地

  • 每一条非当前会话提供「退出这台设备」,确认后立即吊销该会话的访问与刷新令牌。
  • 被踢的设备下次前台请求时展示「已在其他设备退出」,不要用通用网络失败;禁止自动静默重登除非人再次完整认证。
  • 提供「退出除当前外的全部」作为批量动作,与单条终止分开,避免只有全开或全关。
  • 验证:用设备 B 的令牌在被 A 点终止后调用需认证接口,应失败;设备 A 与设备 C 仍成功。再故意终止当前会话,确认那就是一次本机退出而不是把别人留下、自己还在。抽查列表消失后令牌是否仍活。

延伸

  • 同组H6.06.1 用户需能查看活跃会话 · H6.06.3 异常登录需主动告知
  • 相邻H6.07 退出登录 · H6.11 密码找回与重置
  • 站内检索session revocation · remote sign-out · refresh token

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/H6.06.2