50 lines
1.4 KiB
Dart
50 lines
1.4 KiB
Dart
import 'package:get/get.dart';
|
|
import 'package:school_asignment_app/common/job/user_info.dart';
|
|
import 'package:school_asignment_app/common/utils/storage.dart';
|
|
import 'package:school_asignment_app/common/store/app_storage_key.dart';
|
|
import 'package:school_asignment_app/routes/app_pages.dart';
|
|
|
|
class UserStore extends GetxController {
|
|
static UserStore get to => Get.find();
|
|
|
|
/// 是否登录
|
|
final isLogin = false.obs;
|
|
String? token;
|
|
String? xToken;
|
|
|
|
/// 用户信息
|
|
Rx<UserInfo?> userInfo = Rx(null);
|
|
|
|
void init() {
|
|
token = StorageService.to.read(AppStorageKey.STORAGE_USER_TOKEN) ?? '';
|
|
try {
|
|
userInfo.value = StorageService.to.read(AppStorageKey.STORAGE_USER_INFO);
|
|
} catch (err) {
|
|
StorageService.to.remove(AppStorageKey.STORAGE_USER_INFO);
|
|
}
|
|
if ((token?.isNotEmpty ?? false) && userInfo.value != null) {
|
|
isLogin.value = true;
|
|
} else {
|
|
isLogin.value = false;
|
|
Get.toNamed(Routes.login);
|
|
}
|
|
}
|
|
|
|
/// 保存 token
|
|
void setToken(String token) {
|
|
token = token;
|
|
StorageService.to.write(AppStorageKey.STORAGE_USER_TOKEN, token);
|
|
}
|
|
|
|
void setXToken(String xtoken) {
|
|
xtoken = xtoken;
|
|
StorageService.to.write(AppStorageKey.STORAGE_X_TOKEN, xtoken);
|
|
}
|
|
|
|
/// 保存 token
|
|
void setUserInfo(UserInfo info) {
|
|
userInfo.value = info;
|
|
StorageService.to.write(AppStorageKey.STORAGE_USER_INFO, info);
|
|
}
|
|
}
|