diff --git a/frontend/mobile-app/lib/features/auth/presentation/providers/auth_provider.dart b/frontend/mobile-app/lib/features/auth/presentation/providers/auth_provider.dart index 80cf0e38..20675545 100644 --- a/frontend/mobile-app/lib/features/auth/presentation/providers/auth_provider.dart +++ b/frontend/mobile-app/lib/features/auth/presentation/providers/auth_provider.dart @@ -82,8 +82,18 @@ class AuthNotifier extends StateNotifier { 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 { 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 { await _secureStorage.deleteAll(); state = const AuthState(status: AuthStatus.unauthenticated); } + + /// 重新加载认证状态(checkAuthStatus 的别名) + /// 用于注册/登录成功后刷新状态 + Future loadAuthState() async { + await checkAuthStatus(); + } } final authProvider = StateNotifierProvider((ref) {