# Launch SDK 账号退出与多实例修复、两端联调

日期：2026-10-24。已完成用户授权的第 1、3 项中 Launch SDK 负责的修复，对应 AUTH-08 的账号持久化部分及 AUTH-10。已同步 Licentivo 提供的更新并完成本机联调。**本任务未上线、未发布 SDK、未提交或推送 Git。**

## 修复结果

账号退出待办与当前可恢复登录使用安全存储中的不同键。写入退出标记失败时，只清理属于该实例的旧登录，不删除其他会话。额外的本机账号退出意图使用作用域及会话凭据的摘要记录；恢复账号前先检查它，包含安全存储写入/删除失败、互斥锁超时后的重启场景。它不保存 bearer、身份断言或许可证，不判断功能权限。

同一 OS 用户和设备上的账号生命周期操作采用跨实例、跨进程协调。旧实例的迟到退出、HTTP 401 清理、失败后的补交及成功后的再次退出，都不能覆盖或删除后来保存的新登录。旧会话待办可独立补交账号撤销，不重建当前其他会话的授权运行时。

已同步 Go、JavaScript、Python、C#、Java、Ruby、Rust、C/C++ 的 Application 生命周期入口、原生示例及接入说明。安全 Store 的公开方法签名保持不变，需正确支持多个不透明键和原子保存。默认 MemoryStore 的账号凭据仍只在内存中保存。若安全 Store 和本机退出标记均无法持久化，SDK 明确报错并停止本实例，不宣称已完成可跨重启的退出。

## Licentivo 更新

本轮实际运行测试使用官方 SDK 0.11.1，固定快照标识为 `local-20261024-5d74ba5ea131`。使用仓库原有导入脚本同步，清单共 115 个文件，**实际变化 23 个、未变 92 个、无新增文件**。变化对应 17 个上游源文件，C 核心在原生、Ruby、Rust 包内重复打包。该受测导入在测试完成时已核对目标文件和上游快照哈希。

Licentivo 服务端源代码未由本任务修改；SDK 的授权实现采用对方提供的版本。按其更新后的约定调整了本地测试：退出保留共享机器凭据与许可文件，由 SDK 的退出记录阻止旧会话；重复解绑的第二个回执可以为 stale。仍检查实际拒绝执行、新绑定恢复和自助额度，未放宽这些业务要求。


<!-- final-workspace-sdk-version-2026-10-24 -->

收尾时工作区已另更新至 Licentivo SDK **0.11.2**（`licentivo-sdk-v0.11.2-release-20261024`）。当前 115 个目标文件与清单、上游源文件的哈希均匹配。与本轮受测快照相比，上游源文件仅有 VERSION、Ruby VERSION 常量和 CMake 版本号变化；授权实现一致。当前导入脚本还增加了 Ruby gem 扩展目录的原生库查找。以上运行测试记录对应固定的 0.11.1 快照，本报告不作为 0.11.2 发布包验收记录。

## 验证

| 范围 | 结果 |
| --- | --- |
| Launch Go 账号 HTTP、DPAPI、退出存储故障及跨进程锁 | 26 条通过记录，含子用例；无失败、无跳过 |
| 同步官方 SDK 后 Go 账号与签名 SDK 回归 | 21 条通过；两个需要独立数据库的 HTTP 测试跳过，已在上一行及实际两端联调验证 |
| 当前 Licentivo HTTP 授权回归与专项控制 | 按用例合并两次执行，62 条最终通过记录；含修正重复回执断言后的复核 |
| 当前官方 Go SDK | 67 条通过记录，无失败 |
| JavaScript / Python | 14 / 12 项通过，含实际签名运行时 |
| C# / Java | 生命周期及官方运行时通过；Java 9 组账号/安全测试通过 |
| Ruby / Rust | Ruby 17 项包装层及实际原生 SDK 通过；Rust 16 项通过 |
| C / C++ | 两个实际签名 SDK 生命周期驱动均通过，覆盖 DPAPI、断网、存储失败和旧实例退出 |

真实两端联调使用实际 Launch、当前 Licentivo、MySQL、Go Launch SDK、官方授权 SDK 和 DPAPI，得到 **18 条阶段通过记录（17 个验证阶段及完成记录）**。包含购买期限同步、实际受保护功能、普通关闭恢复、退出存储写入失败/写删均失败叠加两端网络中断、重启拒绝恢复旧账号、网络恢复后补交撤销、新登录、响应丢失、远程解绑、续费退款及拒付后的授权拒绝。

专项实际服务验证还确认：同一绑定代次提交不同操作编号只消耗一次自助额度；旧退出不删除新绑定凭据和许可，断网仍可恢复新绑定；同一旧 sid 换发新 JWT 不能恢复已退出绑定，新的真实登录可激活；旧退出票据不影响新绑定；离线执行不越过已知签名截止。

本轮未发现新增阻塞性业务问题。运行测试在 Windows 完成；真实两端业务链使用 Go，其他语言完成本地签名 SDK 测试。支付和翻译服务为隔离模拟，没有真实扣款、退款或部署；未访问 192.168.2.177。临时 Licentivo 服务和 MySQL 均已确认停止，原有服务与工作区其他变更保留。

原始日志、受测源码快照和探针位于忽略目录 `.local/account-store-fix-20261024/`。可分享摘要见 [验证证据](https://github.com/spf86/licentivo-launch/blob/main/docs/account-store-fix-evidence-2026-10-24.json)。
