rpc: add android login startup compat

(cherry picked from commit 53904e72f7c3b96e6ae5e24196d0e551fa8aebce)
This commit is contained in:
A 2026-06-08 21:56:51 +08:00
parent 82dd2996e6
commit 294e994272
7 changed files with 127 additions and 3 deletions

View file

@ -96,6 +96,7 @@ status 取值done(真实实现) / stub(兼容响应) / todo(已发现未实
| auth.bindTempAuthKey | done | real-validated | 校验 encrypted bind_auth_key_innernonce/temp key/perm key/session/expires_at后记录 temp_auth_key_bindings后续 temp auth_key RPC 会解析为 perm auth_key 身份,并刷新 active session 的业务 auth_key_id / user_id 缓存 |
| auth.exportLoginToken / auth.importLoginToken | stub | tdesktop-qr-placeholder | TDesktop QR 登录页轮询;当前单 DC 主路径只支持手机号登录,返回短期 auth.loginToken 避免未实现噪声;`auth.acceptLoginToken` 显式返回 `AUTH_TOKEN_INVALID`,不伪造跨设备 QR 授权 |
| auth.exportAuthorization / auth.importAuthorization / auth.dropTempAuthKeys | stub | single-dc-bounded | 单 DC 当前不做跨 DC authorization handoffexport/import 返回 `DC_ID_INVALID`dropTempAuthKeys 返回成功避免旧 temp key 清理路径噪声 |
| auth.initPasskeyLogin | stub | empty-options | DrKLO Android 手机号页会后台预取 passkey 登录;当前不接 passkey返回空 `auth.passkeyLoginOptions` 避免反复 NOT_IMPLEMENTED |
| auth.sendCode / auth.resendCode / auth.cancelCode | done | dev-code | 开发固定验证码phone_code_hash 存 Redis CodeStore手机号统一规范为纯数字resend 会校验并失效旧 hash 后生成新 hashcancel 会删除 pending code |
| auth.signIn | done | real+2fa-gate | 校验码;兼容 TDesktop sendCode 后 signIn 使用 DigitsOnly(phone);无 2FA 时登录成功绑定在线 session 的 user_id写入并延迟推送 777000 官方登录消息 updateNewMessage同时向其它在线 session 推送新登录 updateServiceNotification账号已启用 2FA 时返回 `SESSION_PASSWORD_NEEDED` 并等待 `auth.checkPassword` |
| auth.signUp | done | real | 建 user + 绑定 authorization登录成功绑定在线 session 的 user_id写入并延迟推送 777000 官方登录消息 updateNewMessage |
@ -399,9 +400,9 @@ outbox 多 worker 并发 + 发送事务乱序提交 → **主动推送可能乱
| method | status | behavior | note |
|---|---|---|---|
| langpack.getLangPack | done | real | PG-backed启动 seed `tdesktop_en/zh-hans_v12000000.strings` |
| langpack.getLangPack | done | real+legacy-adapter | PG-backed启动 seed `tdesktop_en/zh-hans_v12000000.strings`DrKLO Android legacy `#9ab5c58e lang_code:string` 由 RPC edge 补 `lang_pack` 后复用当前实现 |
| langpack.getDifference | done | real | 按 version 返回语言包差异;当前 seed 同版本全量 |
| langpack.getStrings | done | real | 按 key 查询 PG 中的语言包字符串 |
| langpack.getStrings | done | real+legacy-adapter | 按 key 查询 PG 中的语言包字符串DrKLO Android legacy `#2e1ee318 lang_code:string keys:Vector<string>` 由 RPC edge 补 `lang_pack`keys 上限 512 |
| langpack.getLanguages | done | compat-static | Layer 225 `#42c6978f` 已注册DrKLO Android 仍会发 legacy `#800fd57d` 无参版本RPC edge 显式 adapter 后返回语言列表 |
## Files / Media / Photos