makecindy / makecindy/cindy

feat(remote-desktop): 支持 Windows 被控端可选自动解锁

Open
#4,242 1 comment 0 reactions 1 assignee Claimed by @MagicLizi View on GitHub
enhancement
Dominant language
TypeScript
Stars
2.7k
Forks
401
Avg merge
21h 48m
Merged PRs (30d)
776

Description

### 使用场景 / Use case

用户从手机连接已锁屏的 Windows 电脑时,希望在主动开启自动解锁后,使用手机端保存的凭证自动解锁并进入原有桌面。iPhone 可选用 Face ID 保护凭证使用;已解锁的电脑应直接连接,无需额外输入系统密码或进行 Face ID 验证。

### 当前问题 / Current limitation

关联 PR:#4207(可选远程桌面自动解锁、退出锁屏和手机原生控制)。该 PR 的自动解锁目前仅支持 iOS 控制 macOS,未实现 Windows 被控端解锁,Windows 上应隐藏不可用的自动解锁入口。本 issue 独立跟踪 Windows 支持,不阻塞现有 macOS 改动收敛。

Windows 登录界面与普通桌面的权限边界不同,不能直接复用 macOS 的原生输入实现;具体 Windows 方案需要先验证可行性。

### 期望方案 / Proposed solution

- 复用现有已授权的设备连接和加密凭证传输,不新增业务服务端依赖。
- 沿用手机「控制 → 安全」中的可选自动解锁及生物认证体验,保留用户明确关闭 Face ID 的偏好;首次启用时先完成密码输入和验证,再按偏好请求 Face ID。
- 调研 Windows 原生登录集成(如 Credential Provider)及所需本机辅助组件,明确安装授权、签名、升级与卸载方式,再确定实现;不预先限定必须采用某一种架构。
- 凭证保留在受保护的原生存储和处理边界内,不进入 JS、日志或业务服务端。连接撤销、退出账号、用户取消或认证失败后不能继续解锁。

验收范围:

- 已解锁电脑正常直连;锁屏且已开启自动解锁时,完成凭证认证后真正解锁原有桌面,并恢复画面和操作。
- 关闭自动解锁时不自动使用保存的凭证;取消 Face ID、密码错误或密码已修改时提供明确反馈和手动恢复路径,避免反复弹窗。
- 明确验证 Windows 10/11、本地账户、Microsoft 账户及企业账户的支持矩阵;Windows Hello/PIN、无密码账户、企业策略限制应单独确认,不能把密码方案默认宣称为全部支持。
- 在 Windows 真机完成连接、断开重连、锁屏解锁及撤销场景验证。重启后的首次登录、注销及多用户切换是否支持,需明确记录,不默认包含。

### 已考虑的替代方案 / Alternatives considered

- 继续通过远程桌面手动解锁作为未支持场景的回退。
- 不通过关闭系统锁屏或开启 Windows 开机自动登录来代替「连接时解锁」。
- 微软原生登录扩展参考:[Credential Providers in Windows](https://learn.microsoft.com/en-us/windows/win32/secauthn/credential-providers-in-windows)。

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.