From 2106aad80b34b6137910740fda98063eae6399c9 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Wed, 2 Apr 2025 11:38:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=80=80=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=80=BB=E8=BE=91=E4=BB=A5=E5=A2=9E=E5=BC=BA=E5=81=A5?= =?UTF-8?q?=E5=A3=AE=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/settings_controller.dart | 53 +++++++++++++++---- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/lib/modules/settings/controllers/settings_controller.dart b/lib/modules/settings/controllers/settings_controller.dart index ce400e224..ec8dcb43e 100644 --- a/lib/modules/settings/controllers/settings_controller.dart +++ b/lib/modules/settings/controllers/settings_controller.dart @@ -12,6 +12,7 @@ import '../../../modules/login/controllers/googleLogin.dart'; import '../../../modules/login/controllers/facebookLogin.dart'; import 'package:path_provider/path_provider.dart'; import 'dart:io'; +import '../../../routes/app_routes.dart'; class SettingsController extends GetxController { // 语言设置 @@ -279,14 +280,48 @@ class SettingsController extends GetxController { } Future signOut() async { - // 在此实现退出登录逻辑 - _storage.write("logintoken", ""); - _storage.write("user_info", ""); - final google = Google(); - final facebook = Facebook(); - - await google.signOutGoogle(); - await facebook.signOutFacebook(); - Get.offAllNamed('/login'); + try { + //显示加载提示 + // Get.dialog( + // const Center(child: CircularProgressIndicator()), + // barrierDismissible: false, + // ); + + // 清理所有存储 + await _storage.erase(); + // 或者逐个清理关键存储项 + await _storage.write("logintoken", null); + await _storage.write("user_info", null); + await _storage.write("local_avatar", null); + print('清理存储成功'); + + // 第三方登录退出 + try { + final google = Google(); + final facebook = Facebook(); + await Future.wait([ + google.signOutGoogle(), + facebook.signOutFacebook(), + ]); + } catch (e) { + print('第三方登录退出错误: $e'); + // 继续执行,不中断退出流程 + } + + // 关闭加载提示 + //Get.back(); + + // 确保导航到登录页面 + if (Get.currentRoute != Routes.login) { + await Get.offAllNamed(Routes.login); + } + + Get.snackbar('成功', '已退出登录'); + print('退出登录成功'); + } catch (e) { + //Get.back(); // 关闭加载提示 + Get.snackbar('错误', '退出登录失败,请重试'); + print('退出登录错误: $e'); + } } }