fix: 登录页补充 42300 账号锁定错误码映射
- 对齐后端 T4 新增的登录锁定契约(openapi.yaml),锁定时展示明确横幅而非通用兜底 - 门禁:format 0 changed / analyze 0 issues / flutter test 30 passed
This commit is contained in:
@@ -19,6 +19,9 @@ abstract final class ApiCodes {
|
|||||||
|
|
||||||
/// 手机号重复。
|
/// 手机号重复。
|
||||||
static const phoneTaken = 40901;
|
static const phoneTaken = 40901;
|
||||||
|
|
||||||
|
/// 登录失败次数过多,账号临时锁定(HTTP 423,见 openapi.yaml)。
|
||||||
|
static const loginLocked = 42300;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// API 调用的类型化异常。页面按类型映射为三层错误呈现
|
/// API 调用的类型化异常。页面按类型映射为三层错误呈现
|
||||||
|
|||||||
@@ -110,9 +110,11 @@ class _LoginPageState extends State<LoginPage> {
|
|||||||
// 认证状态机随 saveSession 切换,根路由 300ms fade 进主壳。
|
// 认证状态机随 saveSession 切换,根路由 300ms fade 进主壳。
|
||||||
} on ApiBusinessException catch (error) {
|
} on ApiBusinessException catch (error) {
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
_showFormError(
|
_showFormError(switch (error.code) {
|
||||||
error.code == ApiCodes.badCredentials ? '用户名或密码错误' : '登录失败,请稍后重试',
|
ApiCodes.badCredentials => '用户名或密码错误',
|
||||||
);
|
ApiCodes.loginLocked => '尝试次数过多,账号已临时锁定,请稍后再试',
|
||||||
|
_ => '登录失败,请稍后重试',
|
||||||
|
});
|
||||||
} on ApiRateLimitException {
|
} on ApiRateLimitException {
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
_showFormError('尝试次数过多,请稍后再试');
|
_showFormError('尝试次数过多,请稍后再试');
|
||||||
|
|||||||
Reference in New Issue
Block a user