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'); + } } }