feat(client): 登录体验 — 记住邮箱 + 密码显隐 + 7天免登陆
1. 记住邮箱:登录页预填上次邮箱(TokenStore.saveLastEmail,登录/注册成功时存, 退出登录不清除)。 2. 密码显隐:登录/注册密码框加眼睛按钮切换明文(PangolinIcons.eye/eyeOff)。 3. 7天免登陆:RootFlow 改为响应 authProvider——启动时有有效会话直接进主界面; AuthNotifier.refresh() 在服务端拒绝(refresh 过期/超 7 天)时 logout 回登录页, 网络错误则保留会话。会话恢复期间显示极简启动屏。 flutter analyze 0 error;114 tests passed。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -60,6 +60,11 @@ class AuthNotifier extends StateNotifier<AuthState> {
|
||||
try {
|
||||
await saveTokens(await _api.refresh(rt));
|
||||
return true;
|
||||
} on AuthApiException catch (e) {
|
||||
// 服务端明确拒绝(refresh 过期/失效,超出 7 天)→ 退出登录回登录页;
|
||||
// 网络错误(statusCode<=0)则保留会话,稍后重试。
|
||||
if (e.statusCode > 0) await logout();
|
||||
return false;
|
||||
} catch (_) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user