From 9430439b4efc0756231f9fb5d16692bb7a28a274 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Mon, 3 Nov 2025 15:00:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E7=99=BB=E5=BD=95=E9=80=80=E5=87=BA?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=B9=B6=E6=9B=BF=E6=8D=A2print=E4=B8=BALogg?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改进Google登录退出流程,增加安全检查 替换调试打印语句为统一日志工具 移除未使用的Facebook登录相关代码 --- lib/data/services/account_service.dart | 5 +-- .../login/controllers/googleLogin.dart | 36 +++++++++++++------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/lib/data/services/account_service.dart b/lib/data/services/account_service.dart index 5fbaf41ee..419749ee4 100644 --- a/lib/data/services/account_service.dart +++ b/lib/data/services/account_service.dart @@ -57,11 +57,12 @@ class AccountService extends GetxService { /// 返回操作是否成功 Future logoutThirdParty() async { try { + logger.d('lxm--开始退出第三方登录'); final google = Google(); - final facebook = Facebook(); + //final facebook = Facebook(); await Future.wait([ google.signOutGoogle(), - facebook.signOutFacebook(), + //facebook.signOutFacebook(), ]); logger.d('第三方登录退出成功'); return true; diff --git a/lib/modules/login/controllers/googleLogin.dart b/lib/modules/login/controllers/googleLogin.dart index 548cbd792..cd6630bde 100644 --- a/lib/modules/login/controllers/googleLogin.dart +++ b/lib/modules/login/controllers/googleLogin.dart @@ -1,6 +1,7 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:google_sign_in/google_sign_in.dart'; import 'package:get/get.dart'; +import '../../../core/utils/logger.dart'; class Google { String? token = ''; @@ -16,49 +17,50 @@ class Google { // 确保用户已经登录,并获取当前用户的身份验证令牌 final currentUser = FirebaseAuth.instance.currentUser; - print('Future响应数据: $currentUser'); + Logger.d('GoogleLogin', 'Future响应数据: $currentUser'); if (currentUser != null) { // 这里处理您需要使用这个JWT令牌的逻辑,例如将它存储到本地存储中作为凭据。 email = currentUser.email; displayName = currentUser.displayName; id = currentUser.uid; pictureurl = currentUser.photoURL; - print('Future响应数据pictureurl: $pictureurl'); + Logger.d('GoogleLogin', 'Future响应数据pictureurl: $pictureurl'); token = await currentUser.getIdToken(); - print('Future响应数据tokenResult: $token'); + Logger.d('GoogleLogin', 'Future响应数据tokenResult: $token'); // IdTokenResult token1 = await currentUser.getIdTokenResult(); - // print('Future响应数据token1: $token1'); + // Logger.d('GoogleLogin', 'Future响应数据token1: $token1'); return true; } else { UserCredential userCredential = await loginGoogle(); token = await userCredential.user?.getIdToken(); - print('Future响应数据tokenResult: $token'); + Logger.d('GoogleLogin', 'Future响应数据tokenResult: $token'); if (token != "") { return true; } else { return false; } - // logger.d("user login google: ${userCredential.user?.displayName}"); + // Logger.d('GoogleLogin', "user login google: ${userCredential.user?.displayName}"); } } catch (e) { - print("Google 登录异常:$e"); + Logger.e('GoogleLogin', "Google 登录异常:$e"); return false; } } // Google登录 Future loginGoogle() async { - print('loginGoogle:'); + Logger.d('GoogleLogin', 'loginGoogle:'); final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn(); email = googleUser?.email; id = googleUser?.id; displayName = googleUser?.displayName; pictureurl = googleUser?.photoUrl; - print('loginGoogle: $googleUser'); - print("user login loginGoogle ${email}${id}${displayName}"); + Logger.d('GoogleLogin', 'loginGoogle: $googleUser'); + Logger.d( + 'GoogleLogin', "user login loginGoogle ${email}${id}${displayName}"); // Obtain the auth details from the request final GoogleSignInAuthentication? googleAuth = @@ -76,7 +78,19 @@ class Google { // 退出Google登录 Future signOutGoogle() async { + // 1. 先退出 Firebase await FirebaseAuth.instance.signOut(); - await GoogleSignIn().signOut(); + + // 2. 安全退出 Google Sign-In + final googleSignIn = GoogleSignIn(); + + // 检查当前是否有已登录的 Google 账号 + final currentUser = googleSignIn.currentUser; + if (currentUser != null) { + await googleSignIn.signOut(); + Logger.d('GoogleLogin', 'Google 账号已退出'); + } else { + Logger.d('GoogleLogin', 'Google 未登录,跳过 signOut'); + } } }