diff --git a/lib/modules/home/bindings/home_binding.dart b/lib/modules/home/bindings/home_binding.dart index 835a946fd..a8dae0b27 100644 --- a/lib/modules/home/bindings/home_binding.dart +++ b/lib/modules/home/bindings/home_binding.dart @@ -1,11 +1,13 @@ import '../../explore/controllers/explore_controller.dart'; import 'package:get/get.dart'; +import '../../explore/controllers/explore_controller.dart'; import '../controllers/home_controller.dart'; class HomeBinding extends Bindings { @override void dependencies() { Get.lazyPut(() => HomeController()); - Get.lazyPut(()=>ExploreController());// 注册ExploreController + Get.lazyPut( + () => ExploreController()); // 注册ExploreController } -} \ No newline at end of file +} diff --git a/lib/modules/login/controllers/facebookLogin.dart b/lib/modules/login/controllers/facebookLogin.dart index 61e17a4a8..59e701faf 100644 --- a/lib/modules/login/controllers/facebookLogin.dart +++ b/lib/modules/login/controllers/facebookLogin.dart @@ -10,7 +10,7 @@ import 'package:get/get.dart'; import 'package:crypto/crypto.dart'; class Facebook { - String token = ''; + String? token = ''; String name = ''; String email = ''; @@ -31,79 +31,101 @@ class Facebook { return digest.toString(); } - // FaceBook登录 - // 修改后的 signInWithFacebook Future signInWithFacebook() async { try { - final rawNonce = generateNonce(); - final nonce = sha256ofString(rawNonce); - final LoginResult loginResult = await FacebookAuth.instance - .login( - loginTracking: LoginTracking.enabled, - nonce: nonce, - ) - .catchError((onError) { - if (kDebugMode) { - //print(onError); - } - throw Exception(onError.message); - }); - if (loginResult.accessToken == null) { - throw Exception(loginResult.message); - } - // Create a credential from the access token - OAuthCredential facebookAuthCredential; - - print("tokenType${loginResult.accessToken!.type}"); - - if (Platform.isIOS) { - // Create a credential from the access token - switch (loginResult.accessToken!.type) { - case AccessTokenType.classic: - final classicToken = loginResult.accessToken as ClassicToken; - token = classicToken.tokenString; - print('Token 字符串: ${classicToken.tokenString}'); - print('classicToken值: ${classicToken}'); - facebookAuthCredential = FacebookAuthProvider.credential( - classicToken.authenticationToken!, - ); - break; - case AccessTokenType.limited: - final limitedToken = loginResult.accessToken as LimitedToken; - token = limitedToken.tokenString; - print('Token 字符串: ${limitedToken.tokenString}'); - print('LimitedToken值: ${limitedToken}'); - facebookAuthCredential = OAuthCredential( - providerId: 'facebook.com', - signInMethod: 'oauth', - idToken: limitedToken.tokenString, - rawNonce: rawNonce, - ); - break; - } + UserCredential userCredential = await loginFacebook(); + //UserCredential userCredential = await loginGoogle(); + token = await userCredential.user?.getIdToken(); + print('facebook响应数据userCredential: $token'); + if (token != "") { + return true; } else { - facebookAuthCredential = FacebookAuthProvider.credential( - loginResult.accessToken!.tokenString, - ); - token = loginResult.accessToken!.tokenString; + return false; } - print('facebookAuthCredential值: ${facebookAuthCredential}'); - if (facebookAuthCredential == null) { - throw Exception("Facebook Login Fail."); + } catch (e) { + print(e); + return false; + } + } + + // FaceBook登录 + // 修改后的 signInWithFacebook + Future loginFacebook() async { + //try { + final rawNonce = generateNonce(); + final nonce = sha256ofString(rawNonce); + final LoginResult loginResult = await FacebookAuth.instance + .login( + loginTracking: LoginTracking.enabled, + nonce: nonce, + ) + .catchError((onError) { + if (kDebugMode) { + //print(onError); } - final userData = await FacebookAuth.instance.getUserData(); - name = userData["name"].toString(); + throw Exception(onError.message); + }); + if (loginResult.accessToken == null) { + throw Exception(loginResult.message); + } + // Create a credential from the access token + OAuthCredential facebookAuthCredential; - email = userData["email"].toString(); - pictureurl = userData["picture"]["data"]["url"].toString(); - id = userData["id"].toString(); - print("user login facebook ${email}${pictureurl}${name}${id}"); + print("tokenType${loginResult.accessToken!.type}"); - return true; - } catch (e) { - print("Facebook 登录异常:$e"); - return false; + if (Platform.isIOS) { + // Create a credential from the access token + switch (loginResult.accessToken!.type) { + case AccessTokenType.classic: + final classicToken = loginResult.accessToken as ClassicToken; + // token = classicToken.tokenString; + print('Token 字符串: ${classicToken.tokenString}'); + print('classicToken值: ${classicToken}'); + facebookAuthCredential = FacebookAuthProvider.credential( + classicToken.authenticationToken!, + ); + break; + case AccessTokenType.limited: + final limitedToken = loginResult.accessToken as LimitedToken; + //token = limitedToken.tokenString; + print('Token 字符串: ${limitedToken.tokenString}'); + print('LimitedToken值: ${limitedToken}'); + facebookAuthCredential = OAuthCredential( + providerId: 'facebook.com', + signInMethod: 'oauth', + idToken: limitedToken.tokenString, + rawNonce: rawNonce, + ); + break; + } + } else { + facebookAuthCredential = FacebookAuthProvider.credential( + loginResult.accessToken!.tokenString, + ); + //token = loginResult.accessToken!.tokenString; + } + print('facebookAuthCredential值: ${facebookAuthCredential}'); + if (facebookAuthCredential == null) { + throw Exception("Facebook Login Fail."); } + final userData = await FacebookAuth.instance.getUserData(); + name = userData["name"].toString(); + + email = userData["email"].toString(); + pictureurl = userData["picture"]["data"]["url"].toString(); + id = userData["id"].toString(); + print("user login facebook ${email}${pictureurl}${name}${id}"); + return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential); + + // final User? user = userCredential.user; // 获取用户信息 + // token = await userCredential.user?.getIdToken(); + // print("irebaseAuth.instance.signInWithCredential ${token}"); + + // return true; + // } catch (e) { + // print("Facebook 登录异常:$e"); + // return false; + // } } // 退出Google登录 diff --git a/lib/modules/login/controllers/login_controller.dart b/lib/modules/login/controllers/login_controller.dart index 3d92d3c85..3085c5996 100644 --- a/lib/modules/login/controllers/login_controller.dart +++ b/lib/modules/login/controllers/login_controller.dart @@ -378,7 +378,7 @@ class LoginController extends GetxController { print("数据获取Facebook"); final facebook = Facebook(); bool authResult = await facebook.signInWithFacebook(); - print("数据获取Facebook().token${authResult}"); + if (authResult) { print("数据获取_Facebook.token${facebook.token}"); print("数据获取_Facebook.pictureurl${facebook.pictureurl}"); @@ -392,7 +392,7 @@ class LoginController extends GetxController { requestLogin({ "mail": facebook.email, "phone": "", - "stype": loginType, + "stype": 5, "vcode": "", "ttoken": facebook.token, "phonemodel": "", @@ -421,7 +421,7 @@ class LoginController extends GetxController { requestLogin({ "mail": google.email, "phone": "", - "stype": loginType, + "stype": 5, "vcode": "", "ttoken": google.token, "phonemodel": "",