在不具备Firebase的Flutter应用中添加Facebook和Google的身份验证

时间:2019-01-09 10:46:23

标签: facebook-graph-api flutter facebook-authentication

我正在开发Flutter应用程序,需要在我们的应用程序登录页面中包括Facebook和Google登录选项。我没有使用Firebase,而是在MySQL数据库上存储和检索用户数据。

我正在寻找在没有Firebase的Flutter应用程序中添加FB和Google身份验证。我找不到与此相关的任何文章。随时随地都在使用Firebase。

在学习了教程之后,我已经在FB Developer控制台中注册了我的应用程序,但是我不确定将在其中的“ OAuth重定向URL”字段中输入什么内容。

当前,我正在使用xampp服务器和nodeJS进行服务器端处理。下面是单击按钮时调用的代码。我正在使用用于Facebook身份验证的插件(请告知我该插件是否专门用于Firebase)。

void initiateFacebookLogin() async {
    var facebookLogin = FacebookLogin();
    facebookLogin.loginBehavior = FacebookLoginBehavior.webViewOnly;
    print("Inside fb login");
    var facebookLoginResult = await facebookLogin
        .logInWithReadPermissions(['email', 'public_profile']);
    switch (facebookLoginResult.status) {
      case FacebookLoginStatus.error:
        print("Error");
        onLoginStatusChanged(false);
        break;
      case FacebookLoginStatus.cancelledByUser:
        print("CancelledByUser");
        onLoginStatusChanged(false);
        break;
      case FacebookLoginStatus.loggedIn:
        print("LoggedIn");

        var graphResponse = await http.get(
            'https://graph.facebook.com/v2.12/me?fields=name,first_name,last_name,email,picture.height(200)&access_token=${facebookLoginResult.accessToken.token}');

        var profile = json.decode(graphResponse.body);
        print(profile.toString());

        onLoginStatusChanged(true, profileData: profile);
        break;
    }
  }

任何帮助或文章都将受到高度赞赏。

致谢, RSM

1 个答案:

答案 0 :(得分:0)

如评论中所述,Facebook和Google登录都可以在没有Firebase的情况下使用。有Flutter google_sign_in软件包的示例代码,您可以尝试here