feat(login): 二级密码登录支持(STATUS_SECONDARY_PASSCODE_ERROR 30164) #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
旧版 Flutter 项目(
im-client-im-dev)在/vcode/check返回错误码 30164(STATUS_SECONDARY_PASSCODE_ERROR)时,会跳转到二级密码输入界面,用户输入后 MD5 哈希,再调/login-user带password字段完成登录。新版
customer-im-client-dev完全缺失这条路径:VerifyOtpResponse无法携带错误响应中的vcode_tokenLoginRequest无password字段LoginUseCase没有处理 30164 的分支结果:有二级密码的账号在新版无法登录。
改动范围
1.
errors.dart— 新增错误码2.
verify_otp_request.dart— 新增SecondaryPasscodeRequiredDataDTO错误响应
data含vcode_token / recovery_email / hint / reset_status3.
auth_repository.dart/auth_repository_impl.dartverifyOtp()catch 30164 → 解析 data → 抛出SecondaryPasscodeRequiredException4.
login_usecase.dart— 新增loginWithSecondaryPasscode()MD5 哈希用户输入的二级密码,调
AuthRepository.loginWithPasscode()5.
login_request.dart— 新增password字段6. UI — 新增
secondary_passcode_page.dart对齐旧版
secondaryPasscodeLoginVerifyView:6位 PIN 输入,找回密码占位验收标准