| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import 'package:path/path.dart' as path;
- import '../../../core/constants/api_constants.dart';
- import '../../../core/network/dio_client.dart';
- import '../../../core/storage/local_storage.dart';
- import '../../../core/utils/logger.dart';
- import '../data/quit_model.dart';
- class MineService {
- static Future<QuitModel> logout({
- required String loginSystem
- }) async {
- try {
- // 在请求之前获取并打印 Token
- final token = await LocalStorage.getToken();
- AppLogger.d('退出登录 - 本地存储的 Token: $token');
-
- final parame = {
- "login_system": loginSystem
- };
- AppLogger.d('退出登录请求参数: $parame');
- final response = await DioClient.post<Map<String, dynamic>>(
- path.join(ApiConstants.baseUrl, ApiConstants.logout),
- data: parame,
- );
- if (response.statusCode == 200) {
- final data = response.data;
- if (data != null && data['code'] == 20000) {
- AppLogger.d('退出登录成功: $data');
-
- // 退出登录成功后,清除本地 Token 和用户信息
- await LocalStorage.removeToken();
- await LocalStorage.removeUserInfo();
- await LocalStorage.removeInstitutionInfo();
-
- // 解析为 QuitModel
- final authModel = QuitModel.fromJson(data);
- return authModel;
- } else {
- final errorMsg = data?['message'] ?? '退出登录失败';
- AppLogger.d('退出登录失败: $errorMsg');
- throw Exception(errorMsg);
- }
- } else {
- AppLogger.d('退出登录请求错误: ${response.statusCode}, ${response.statusMessage}');
- throw Exception('请求失败: ${response.statusCode}');
- }
- } catch (e) {
- AppLogger.e('退出登录错误', e);
- rethrow;
- }
- }
- }
|