fix(mobile-app): 自动修复 isAccountCreated 状态
问题:已注册用户重新安装 App 后,isAccountCreated 可能为 false, 导致"我的"页面显示"创建账号审核中..." 修复: 1. checkAuthStatus() 中检测到有 token 和 userSerialNum 但 isAccountCreated 为 false 时,自动修复为 true 2. 添加 loadAuthState() 方法(checkAuthStatus 的别名) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
836bfe7f36
commit
8fa975a19e
|
|
@ -82,8 +82,18 @@ class AuthNotifier extends StateNotifier<AuthState> {
|
|||
final isFirstLaunch = isFirstLaunchStr == null || isFirstLaunchStr != 'false';
|
||||
|
||||
// 检查账号是否已创建
|
||||
final isAccountCreatedStr = await _secureStorage.read(key: StorageKeys.isAccountCreated);
|
||||
final isAccountCreated = isAccountCreatedStr == 'true';
|
||||
var isAccountCreatedStr = await _secureStorage.read(key: StorageKeys.isAccountCreated);
|
||||
var isAccountCreated = isAccountCreatedStr == 'true';
|
||||
|
||||
// 修复:如果有 token 和 userSerialNum,但 isAccountCreated 为 false,自动修复
|
||||
final accessToken = await _secureStorage.read(key: StorageKeys.accessToken);
|
||||
final userSerialNum = await _secureStorage.read(key: StorageKeys.userSerialNum);
|
||||
if (!isAccountCreated && accessToken != null && accessToken.isNotEmpty &&
|
||||
userSerialNum != null && userSerialNum.isNotEmpty) {
|
||||
// 自动修复:设置 isAccountCreated = true
|
||||
await _secureStorage.write(key: StorageKeys.isAccountCreated, value: 'true');
|
||||
isAccountCreated = true;
|
||||
}
|
||||
|
||||
// 检查钱包是否已就绪
|
||||
final isWalletReadyStr = await _secureStorage.read(key: StorageKeys.isWalletReady);
|
||||
|
|
@ -93,8 +103,8 @@ class AuthNotifier extends StateNotifier<AuthState> {
|
|||
final isMnemonicBackedUpStr = await _secureStorage.read(key: StorageKeys.isMnemonicBackedUp);
|
||||
final isMnemonicBackedUp = isMnemonicBackedUpStr == 'true';
|
||||
|
||||
// 获取用户序列号和推荐码(用于跳转到备份页面)
|
||||
final userSerialNum = await _secureStorage.read(key: StorageKeys.userSerialNum);
|
||||
// 获取推荐码(用于跳转到备份页面)
|
||||
// 注意:userSerialNum 已在上面读取过了
|
||||
final referralCode = await _secureStorage.read(key: StorageKeys.referralCode);
|
||||
|
||||
// 旧版兼容:检查旧的 walletAddress 字段
|
||||
|
|
@ -182,6 +192,12 @@ class AuthNotifier extends StateNotifier<AuthState> {
|
|||
await _secureStorage.deleteAll();
|
||||
state = const AuthState(status: AuthStatus.unauthenticated);
|
||||
}
|
||||
|
||||
/// 重新加载认证状态(checkAuthStatus 的别名)
|
||||
/// 用于注册/登录成功后刷新状态
|
||||
Future<void> loadAuthState() async {
|
||||
await checkAuthStatus();
|
||||
}
|
||||
}
|
||||
|
||||
final authProvider = StateNotifierProvider<AuthNotifier, AuthState>((ref) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue