diff --git a/lib/common/store/user_store.dart b/lib/common/store/user_store.dart index 16eca00..88830dc 100644 --- a/lib/common/store/user_store.dart +++ b/lib/common/store/user_store.dart @@ -9,7 +9,6 @@ class UserStore extends GetxController { static UserStore get to => Get.find(); /// 是否登录 - final isLogin = false.obs; String? token; String? xToken; @@ -30,9 +29,7 @@ class UserStore extends GetxController { StorageService.to.remove(AppStorageKey.userDetailInfo.value); } if ((token?.isNotEmpty ?? false) && userInfo.value != null) { - isLogin.value = true; } else { - isLogin.value = false; Get.toNamed(Routes.login); } return this; @@ -40,13 +37,13 @@ class UserStore extends GetxController { /// 保存 token void setToken(String token) { - token = token; + this.token = token; StorageService.to.write(AppStorageKey.token.value, token); } /// 更新Xtoken的匙 void setXToken(String xtoken) { - xtoken = xtoken; + xToken = xtoken; StorageService.to.write(AppStorageKey.xToken.value, xtoken); } @@ -61,4 +58,11 @@ class UserStore extends GetxController { userDetailInfo.value = info; StorageService.to.write(AppStorageKey.userDetailInfo.value, info); } + + void erase() { + userInfo.value = null; + userDetailInfo.value = null; + token = null; + xToken = null; + } } diff --git a/lib/common/utils/storage.dart b/lib/common/utils/storage.dart index 3746285..e2e06b3 100644 --- a/lib/common/utils/storage.dart +++ b/lib/common/utils/storage.dart @@ -27,4 +27,8 @@ class StorageService extends GetxService { bool hasData(String key) { return _getStorage.hasData(key); } + + Future erase() async { + await _getStorage.erase(); + } } diff --git a/lib/page/login_page/login_logic.dart b/lib/page/login_page/login_logic.dart index 4cc07d3..3e09f2c 100644 --- a/lib/page/login_page/login_logic.dart +++ b/lib/page/login_page/login_logic.dart @@ -8,6 +8,7 @@ import 'package:school_asignment_app/common/job/user_info.dart'; import 'package:school_asignment_app/common/job/user_login.dart'; import 'package:school_asignment_app/common/mixins/request_tool_mixin.dart'; import 'package:school_asignment_app/common/store/user_store.dart'; +import 'package:school_asignment_app/common/utils/storage.dart'; import 'package:school_asignment_app/common/utils/toast_utils.dart'; import 'package:school_asignment_app/common/utils/utils.dart'; import 'package:school_asignment_app/routes/app_pages.dart'; @@ -73,7 +74,10 @@ class LoginLogic extends GetxController with RequestToolMixin { throw Exception('用户信息无效,请重试'); } var data = await getClient().getUser(nameidentifier); - print(data); + if (data == null) { + throw Exception('用户信息获取失败'); + } + UserStore.to.setUserDetailInfo(data); EasyLoading.dismiss(); Get.offAllNamed(Routes.home); @@ -108,10 +112,18 @@ class LoginLogic extends GetxController with RequestToolMixin { // RouterManager.router.navigateTo(context, RouterManager.root, clearStack: true, transition: getTransition()); });*/ } catch (e) { - print(e); - // FastData.getInstance().cleanShared(); - toMsg('登录失败,请重试'); + print('进来异常'); EasyLoading.dismiss(); + StorageService.to.erase(); + UserStore.to.erase(); + if (e is Exception) { + try { + toMsg(e.toString().split(":")[1]); + return; + // ignore: empty_catches + } catch (e) {} + } + toMsg('登录失败,请重试'); } finally { state.canLogin.value = true; }