fix: 修复 Windows 端密码无法持久化的问题

Windows 端使用内存版 MemStore(keychain_other.go, 构建标签 !darwin),
进程退出后密码丢失,导致每次启动都需重新输入密码才能连接。

新增 keychain_windows.go,基于 Windows 凭据管理器(Credential Manager)
实现 Store 接口,密码经 Windows 登录凭据加密并持久化,跨重启保留。
keychain_other.go 构建标签收窄为 !darwin && !windows,作为 Linux 回退。

macOS 版本不受影响(仍由 keychain_darwin.go 独占编译)。
This commit is contained in:
2026-07-07 17:47:41 +08:00
parent 0c5e996bfd
commit 027d837cb2
4 changed files with 106 additions and 5 deletions
+5 -2
View File
@@ -1,8 +1,11 @@
//go:build !darwin
//go:build !darwin && !windows
package keychain
// MemStore is an in-memory fallback used on non-darwin platforms.
// MemStore is an in-memory fallback used on non-darwin, non-windows
// platforms (currently Linux). Passwords do not persist across
// restarts; a platform-appropriate backend (e.g. Secret Service)
// should be added for production use.
type MemStore struct {
data map[string]string
}