如何使用azure adb2c和app-auth从Android应用程序注销

时间:2018-08-06 06:26:17

标签: android azure azure-active-directory azure-ad-b2c appauth

我已使用以下教程使用appauth将azure adb2c的登录集成到我的android应用中 Android appauth.

教程中没有提及如何退出应用程序。

Azure文档中也没有提及这一点。

有什么想法可以做到吗?

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

您可以调用 MobileServiceClient.LogoutAsync();

然后,您必须清除浏览器中的cookie才能登录。根据设备上安装的应用,它可能是Web View或Chrome自定义标签。

如果是WebView,则可以通过调用以下命令清除OAuth2.0的cookie:

CookieManager.Instance.RemoveAllCookies(null);
CookieManager.Instance.Flush();

如果Oauth2.0登录名使用Chrome自定义标签,则可以使用浏览器自定义标签为oauth调用注销网址。 (来自https://github.com/Azure/azure-mobile-apps-ios-client/issues/51#issuecomment-393294895的示例答案)

var logoutUrl = "https://login.windows.net/common/oauth2/logout";
var uri = Android.Net.Uri.Parse(logoutUrl);

var builder = new CustomTabsIntent.Builder();
var customTabsIntent = builder.Build();
customTabsIntent.LaunchUrl(MainActivity, uri);

但是注销后这不会自动关闭浏览器...我还没有弄清楚该怎么做?

答案 1 :(得分:-1)

Azure Mobile Android SDK提供了帮助我们注销的方法,我们可以使用MobileServiceClient.logout()来实现。

以下是原始代码供您参考:

/**
 * Log the user out of the Mobile Service
 */
public ListenableFuture logout() {
    final SettableFuture logoutFuture = SettableFuture.create();

    new AsyncTask<Void, Void, Void>() {
        @Override
        protected Void doInBackground(Void... params) {
            mCurrentUser = null;
            logoutFuture.set(null);
            return null;
        }
    }.execute();
    return logoutFuture;
}

Android Studio中的SDK的屏幕截图: enter image description here

MSDN中的该线程可能对您有帮助:

Cant logout MobileServiceUser from app