Files
xueguang_flutter_app/lib/providers/user_store.dart
2025-11-28 18:01:09 +08:00

51 lines
1.2 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'package:app/data/local/storage.dart';
import 'package:app/request/api/user_api.dart';
import 'package:app/request/dto/user/user_info_dto.dart';
import 'package:flutter/cupertino.dart';
class UserStore extends ChangeNotifier {
UserInfoDto? userInfo;
String token = "";
Future<void> init() async {
token = await getToken();
await setUserInfo();
notifyListeners();
}
///获取用户数据
Future<void> setUserInfo() async {
if (token.isNotEmpty) {
userInfo = await getUserInfoApi();
await Storage.set("user_info", userInfo!.toJson());
}
}
///设置token
Future<void> setToken(String value) async {
token = value;
await Storage.set('token', token);
}
///获取token
static Future<String> getToken() async {
return await Storage.get("token") ?? '';
}
///退出登录
Future<void> logout() async {
await logoutApi();
await Storage.remove('token');
await Storage.remove('user_info');
userInfo = null;
token = '';
notifyListeners();
}
///强制退出(不调用接口、不通知 UI
static Future<void> forceLogout() async {
await Storage.remove('token');
await Storage.remove('user_info');
}
}