makecindy / makecindy/cindy

【功能建议】设置/账号安全面板缺少「剔除设备」能力,删除设备后该设备仍能自动登录

Open
#3,223 1 comment 0 reactions 0 assignees View on GitHub
feature
Dominant language
TypeScript
Stars
2.7k
Forks
395
Avg merge
21h 48m
Merged PRs (30d)
776

Description

**提交人**: 匿名
**客户端版本**: 0.1.57

---

## 反馈类型

功能建议(缺少能力),同时附带一个由「删除 ≠ 失效」引发的安全问题。

## 现象描述

Cindy 设置 → 账号/安全 相关面板中存在「已连接 / 已配对设备」列表。当前界面提供的「删除」仅清理了本地的展示条目,**并未真正回收该设备的访问权限**:

- 在该面板上删除某设备后,被删设备下次打开 Cindy 仍然保持已登录状态、直接进入主界面,不需要重新登录;
- 整个账号安全面板里**没有「剔除 / 撤销授权 / 强制下线」之类的入口**,让用户能在发现风险时立刻让某个设备失效。

## 使用场景

1. **设备丢失、出售、送修**:物理设备离开本人控制后,希望账号持有人能立刻让该设备失去访问权。
2. **多人共用电脑或临时设备**:在公共电脑或他人设备上登录过 Cindy,离开后希望让该设备不再能以本人身份连接。

## 当前痛点

- 「删除设备」这个操作名让用户误以为已经收回访问权,实际上只清掉了本地清单;
- 账号安全面板下缺少真正可信的应急通道来处理「该设备不该再能连上来」;
- 在涉及账号安全的场景下,本地删除 ≠ 远端失效,会让用户产生错误的安全感。

## 期望结果

被剔除的设备**在下次打开 Cindy 时**应当:

1. 立即失效,被强制回到登录界面;
2. 即使本地仍残留旧的登录态,也应被远端拒绝;
3. 不影响同一账号在其它正常设备上的登录状态。

## 建议方案(最小可用版本)

- 在设置 → 账号/安全 面板的设备列表上,把「删除」拆为两个明确动作:
- **从列表中移除**(保留当前行为,可选);
- **剔除此设备**(新动作,触发远端吊销,并给出二次确认)。
- 剔除成功后,被剔除设备下次启动 Cindy 时跳转到登录页,并显示「该设备已被剔除」之类的提示;
- 在账号安全面板顶部提供简短说明,区分这两种操作的差异,避免误用。

## 不在范围(建议本期不做)

- 不要求剔除后立即中断当前已建立的实时连接(仅需下次启动时生效即可);
- 不涉及插件(Ghost)会话、设备配对以外的多端同步机制。

## 复现 / 验证要点(供后续开发参考)

1. 在设备 A 上登录 Cindy,进入设置 → 账号/安全,查看「已配对设备」列表中出现设备 A;
2. 在该面板上对设备 A 执行「删除」(或后续新增的「剔除」);
3. 在设备 A 上再次打开 Cindy:
- **当前**:仍然保持登录态、直接进入主界面;
- **期望**:被强制回到登录页,并提示该设备已被剔除。
---
**版本区域**: CN
**OS**: darwin arm64 (25.5.0)
**界面语言**: zh-CN

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start at the Settings → Account/Security device list and trace how device sessions are validated remotely; then check the existing login and startup flow. Done means a separate revoke-device action invalidates only the selected device on its next launch, returns it to login with a removal notice, and preserves other devices.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
authentication, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.