import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:wow_english/common/core/const.dart'; import 'package:wow_english/models/user_entity.dart'; import 'package:wow_english/route/route.dart'; import 'package:wow_english/utils/sp_util.dart'; class UserUtil { static String token = ''; static void saveUser(UserEntity user) { token = user.token; saveUserJson(user.toString()); } static UserEntity? getUser() { String? userJson = getUserJson(); if (userJson != null && userJson.isNotEmpty) { var userEntity = UserEntity.fromJson(json.decode(userJson)); // todo 并且在有效期,计算一下, "expireTime": 2592000 倒计时需要手动转换,后面再优化 if (userEntity.token.isNotEmpty) { token = userEntity.token; return userEntity; } else { // token为空或失效的,清除sp clearUserSp(); } } return null; } static void saveUserJson(String userJson) { SpUtil.getInstance().setData(SpConst.prefsKeyUserInfo, userJson); } static String? getUserJson() { return SpUtil.getInstance().get(SpConst.prefsKeyUserInfo); } static void clearUserSp() { token = ''; SpUtil.getInstance().remove(SpConst.prefsKeyUserInfo); } static void logout() { clearUserSp(); Navigator.of(AppRouter.context).push(AppRouteName.login as Route); } }