Browse Source

fix(登录): 优化第三方登录退出逻辑并替换print为Logger

改进Google登录退出流程,增加安全检查
替换调试打印语句为统一日志工具
移除未使用的Facebook登录相关代码
newdev_shunjiawei
lxm 11 months ago
parent
commit
9430439b4e
  1. 5
      lib/data/services/account_service.dart
  2. 36
      lib/modules/login/controllers/googleLogin.dart

5
lib/data/services/account_service.dart

@ -57,11 +57,12 @@ class AccountService extends GetxService {
/// 返回操作是否成功
Future<bool> 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;

36
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<UserCredential> 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<void> 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');
}
}
}

Loading…
Cancel
Save