LoginView · AuthFlow
手机号 / 邮箱登录与设备验证
把账号、OTP、条款、设备验证与安全会话拆成可恢复的原生状态机
手机号 / 邮箱登录与设备验证 · 原生页面级细化任务包
把账号、OTP、条款、设备验证与安全会话拆成可恢复的原生状态机。
MatrixXChat/Features/Auth/Login/LoginView.swift
/app/api/auth/otp/send · login-user · verify-device
authenticate · K12
首次登录、换机、session 失效或受控深链。
得到服务端 session material 和设备状态后进入受控 AppRoot,不把验证码或 token 写入 UI 证据。
Account → OTP challenge → device verification → session → registered return route。
OTP one-time-code、VoiceOver、Dynamic Type、键盘焦点、错误摘要和 44pt 操作区。
auth_step_view · otp_request_result · device_verify_result;手机号、邮箱、OTP 与 token 脱敏。
- matrix-x-chat-ios origin/main 为 257e604a5073b1ecab0f905d7ec59dfb78960639;本地 feat/p1-knives-1-8@56c8481 落后 main 86 个提交并有 3 个分支独有提交,不能作为最新 CURRENT
- iOS main 可数 1,711 个 Swift 文件、617 个 `struct …: View`、682 个 Features Swift 文件、530 个 *Tests.swift 与 19 个 workflow 文件;App Store/TestFlight 采用哪个 build 本轮没有证明
- im-core origin/main 与 EC2 production 均为 9e222534fcf6786a517f81936a2133bae7053e4d;源码有 225 个 Go 文件、78 个 Go test 文件、56 个 SQL migrations 和 405 个注册 HandleFunc
- EC2 有 4 个 im-core runtime 容器加 PostgreSQL、Redis、NATS、MinIO;api.reits.tech 的 /healthz、/readyz、/api/v1/meta/app、/im/healthz 均返回 200,WebSocket 独立转发到 18081
- 主 App 锁定 Enterprise 1.0.47、Wallet 1.0.22、MiniApp 1.0.33、Plugin UI 1.0.34;新 tag 或插件仓最新代码不等于主 App 已消费
- 所有预览用户、会话、计数、游标、企业、动态、余额与小程序行情都是 REVIEW FIXTURE;只用于 UI/状态评审,不是生产数据或线上截图
- 生产 meta 明确 wallet_login、wallet_binding、EVM/TRON wallet login 全部 false;登录页不能展示可用钱包登录。
- OTP 焦点、输入和非中文本地化 P0 仍需真机发布证据
- 缺 App Store/TestFlight exact build 与生产合成登录证据
- 登录后设备、session 和 revoke 的跨进程客户端收敛仍需验收
九态挂在当前原生页面的数据、权限、游标、插件或回执上,不使用通用遮罩冒充交互完成
NativeAuthFlow native workspace
R12-AUTH-READY→ 检查 AuthFlow contractNativeAuthFlow independent regions
R12-AUTH-LOAD→ 保留原生导航上下文NativeAuthFlow result
R12-AUTH-EMPTY→ 查看合法下一步NativeAuthFlow dependency rail
R12-AUTH-PARTIAL→ 只重试失败分区NativeAuthFlow request
R12-AUTH-ERROR→ 安全重试NativeAuthFlow safe snapshot
R12-AUTH-OFFLINE→ 等待网络恢复NativeAuthFlow authorization
R12-AUTH-DENY→ 返回安全页面NativeAuthFlow impact sheet
R12-AUTH-CONFIRM→ 确认或取消NativeAuthFlow receipt
R12-AUTH-SUCCESS→ 查看回执target-matrix-loginIMPLEMENTATION MAP
目标定义与下一轮逐页细化入口
当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。
页面区域
- 系统与 API 状态
- 品牌与信任
- 账号输入
- 条款与发送动作
- 验证进度
- 可访问性/P0 证据
用户动作
- 发送验证码
- 切换邮箱
- 粘贴/自动填充 OTP
- 重新发送
- 验证设备
- 取消登录
必须状态
- 通信状态已就绪
- 安全快照同步
- 当前范围为空
- 部分内容未同步
- 本次同步失败
- 离线只读快照
- 关系或权限不允许
- 高影响操作确认
- 服务端回执已完成
数据契约
- NativeAuthRequest
- OtpChallenge
- DeviceVerification
- SessionMaterial
- AuthRouteReceipt
- LocalizationKey
TARGET MODULES
目标页面必须交付的模块
- 01API/build 状态
- 02手机/邮箱切换
- 03国家区号
- 04条款同意
- 05OTP challenge
- 06设备验证
- 07安全会话
- 08P0 回归提示
PRODUCT ROUTE INDEX
Matrix X Chat · Communication 的 28 个稳定 Screen ID
同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。
LoginView · AuthFlowMainTabView.chats · ConversationListViewAppRoute.chatById · ChatViewMainTabView.contacts · ContactsListViewMainTabView.workspace · PluginRegistry.workspaceSearchViewAppRoute.friendRequests · FriendRequestsViewGroupChatDetailViewAppRoute.userProfile · UserProfileViewWorkspaceView · AppMarketViewDiscoveryView · MomentFeedViewAppRoute.wallet · WalletPluginHostView(.home)MainTabView.profile · SettingsViewPluginRegistry.miniApp · IMMiniAppViewShellLoginView · AuthFlowMainTabView.chats · ConversationListViewAppRoute.chatById · ChatViewMainTabView.contacts · ContactsListViewSearchViewAppRoute.friendRequests · FriendRequestsViewGroupChatDetailViewAppRoute.userProfile · UserProfileViewMainTabView.workspace · PluginRegistry.workspaceWorkspaceView · AppMarketViewDiscoveryView · MomentFeedViewAppRoute.wallet · WalletPluginHostView(.home)MainTabView.profile · SettingsViewPluginRegistry.miniApp · IMMiniAppViewShell