0

我使用以下教程使用 appauth Android appauth 在我的 android 应用程序中集成了 azure adb2c 的登录。

该教程没有提到如何退出应用程序。

azure 文档中也没有提到任何关于此的内容。

知道如何做到这一点吗?

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

4

2 回答 2

1

您可以调用您的MobileServiceClient.LogoutAsync();

然后你必须清除浏览器中的cookies才能登录。根据设备上安装的应用程序,它可能是 Web 视图或 Chrome 自定义选项卡。

如果是 WebView,您可以通过调用以下方法清除 OAuth2.0 的 cookie:

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

如果 Oauth2.0 登录使用 Chrome 自定义选项卡,那么您可以使用浏览器自定义选项卡为您的 oauth 调用注销 url。(示例答案来自: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);

但这不会在注销后自动关闭浏览器......我还没有弄清楚如何做到这一点?

于 2018-11-30T05:48:24.403 回答
-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 截图: 在此处输入图像描述

MSDN 中的这个帖子可能对您有帮助:

无法从应用程序中注销 MobileServiceUser

于 2018-08-10T07:14:14.973 回答