Skip to content

[FEAT]增加「登录设备管理(会话管理)」功能 #299

@XTAI9

Description

@XTAI9

简述

为 VoceChat 增加「登录设备管理(会话管理)」功能:
用户可在账号设置中查看所有已登录设备(含 Web/移动端 等),并对设备进行统一管理(重命名、下线/踢出、查看最近活跃、登录时间/地点/IP/客户端版本等)。
同时可以以此为基础,尝试支持更高安全策略:登录数量上限新设备登录需旧设备授权/验证、可选 2FA/一次性验证码 等。


你预期要达到什么效果

想法落地后将带来以下效果:

  1. 账号安全显著提升

    • 用户能快速发现异常设备登录并一键下线。
    • 新设备登录需要旧设备确认,可减少密码泄露后的风险。
  2. 减少登录冲突与误登录

    • 当同一账号在多端频繁登录/切换时,用户能清楚看到“哪些设备在用”,并可统一手动清理旧会话。
    • 支持用户设置最大设备数,避免账号被多人恶意登录上线。
  3. 更好的团队管理

    • 管理员可对组织成员的会话进行审计与强制下线(可选、需权限控制与日志)。
    • 提供更完善的安全审计日志(下线原因、操作者、时间等)。

目前有没有替代

类似机制在以下产品中较常见(供参考):

  • Telegram:支持“Active Sessions/Devices”查看并终止会话、查看设备信息与最近活跃时间;新设备登录时旧设备支持辅助接收一次性验证码。

  • Google:支持查看并终止会话、查看设备信息与详细最近活跃记录;新设备登录时2FA/旧设备支持辅助接收一次性按钮验证。


附加信息

  • 参考截图

Image

  • 部分参考建议:
    1. 设备列表:设备名/平台/客户端版本/首次登录/最后活跃/IP
    2. 单设备下线、下线所有其他设备
    3. 登录数量上限(可配置但默认无限)
    4. 安全验证:新设备登录触发旧设备确认/一次性验证码

功能拆解

设备信息字段建议:

  • device_id / session_id
  • device_name(可编辑)
  • platform(iOS/Android/Web/Windows/macOS/Linux)
  • client_version
  • ip / last_ip(可选)
  • location(可选:基于 IP 粗略定位)
  • created_at / last_active_at
  • auth_type(密码/SSO/Token/2FA)

关键操作:

  • 重命名设备
  • 终止指定会话
  • 终止所有其他会话
  • 生成/撤销登录 Token

安全策略:

  • 最大登录设备数 N 或 不限制(超出策略:拒绝新登录 / 挤掉最旧会话 / 需用户选择)
  • 新设备登录验证:
    • 旧设备弹窗确认(允许/阻止)
    • 使用邮箱(无旧设备时)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

Not Started

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions