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。仍检查实际拒绝执行、新绑定恢复和自助额度,未放宽这些业务要求。
收尾时工作区已另更新至 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/。可分享摘要见 验证证据。