旧版 Flutter 项目(im-client-im-dev)在 /vcode/check 返回错误码 30164(STATUS_SECONDARY_PASSCODE_ERROR)时,会跳转到二级密码输入界面,用户输入后 MD5 哈希,再调 /login-user 带 password 字段完成登录。
im-client-im-dev
/vcode/check
STATUS_SECONDARY_PASSCODE_ERROR
/login-user
password
新版 customer-im-client-dev 完全缺失这条路径:
customer-im-client-dev
VerifyOtpResponse
vcode_token
LoginRequest
LoginUseCase
结果:有二级密码的账号在新版无法登录。
errors.dart
static const int secondaryPasscodeRequired = 30164;
verify_otp_request.dart
SecondaryPasscodeRequiredData
错误响应 data 含 vcode_token / recovery_email / hint / reset_status
data
vcode_token / recovery_email / hint / reset_status
auth_repository.dart
auth_repository_impl.dart
verifyOtp()
SecondaryPasscodeRequiredException
login_usecase.dart
loginWithSecondaryPasscode()
MD5 哈希用户输入的二级密码,调 AuthRepository.loginWithPasscode()
AuthRepository.loginWithPasscode()
login_request.dart
secondary_passcode_page.dart
对齐旧版 secondaryPasscodeLoginVerifyView:6位 PIN 输入,找回密码占位
secondaryPasscodeLoginVerifyView
No dependencies set.
The note is not visible to the blocked user.
背景
旧版 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 输入,找回密码占位验收标准