【问题标题】:How to implement single logout function for Facebook and Google Authentication如何实现 Facebook 和 Google 身份验证的单点注销功能
【发布时间】:2017-08-18 17:39:40
【问题描述】:

我正在我的 android 应用程序中实现 Facebook 和 Google 身份验证。

我已经完成了他们两个的身份验证,但是要从应用程序中注销,我只有一个按钮,并且有两种非常不同的方法可以通过 facebook 或 google 注销。

我需要从应用程序中注销,考虑从哪个帐户用户登录到我的应用程序,即 Facebook 或 Google。

以下是退出 Facebook 的代码:

FacebookSdk.sdkInitialize(getApplicationContext());
LoginManager.getInstance().logOut();

而且,这是给谷歌的:

private void signOut() {
    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
            new ResultCallback<Status>() {
                @Override
                public void onResult(Status status) {
                    // ...
                }
            });
}

如何根据用户登录的账户类型来实现这些功能。

提前致谢。

【问题讨论】:

    标签: java android facebook


    【解决方案1】:

    面向对象编程中的默认答案:创建另一个抽象层

    意思:你从以下内容开始:

    public interface Authentification {
      public void login();
      public void logout();
    }
    

    然后您创建实现此接口的不同类。

    然后,在运行时,您有 一个 单个类/方法,该类/方法知道 为用户使用哪个实现 - 取决于您是否需要 Google/Facebook/whatever。此方法确实将 Authentification 作为返回类型。

    而您的所有其他代码处理它们现在的对象:它们实现了该接口。

    【讨论】:

      【解决方案2】:

      我建议您看一下 Firebase 身份验证,它支持多个身份验证提供商,如 Facebook 和 Google。

      Firebase 将处理所选身份验证提供程序的登录和注销,您不必为每个新的身份验证提供程序开发登录和注销程序。

      您可以在此处找到文档:

      https://firebase.google.com/docs/auth/android/start/

      【讨论】:

        猜你喜欢
        • 2017-07-30
        • 2018-02-24
        • 2015-10-27
        • 1970-01-01
        • 1970-01-01
        • 2013-11-12
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多