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/。可分享摘要見 驗證證據。