我使用以下教程使用 appauth Android appauth 在我的 android 应用程序中集成了 azure adb2c 的登录。
该教程没有提到如何退出应用程序。
azure 文档中也没有提到任何关于此的内容。
知道如何做到这一点吗?
任何帮助将不胜感激 。谢谢你。
我使用以下教程使用 appauth Android appauth 在我的 android 应用程序中集成了 azure adb2c 的登录。
该教程没有提到如何退出应用程序。
azure 文档中也没有提到任何关于此的内容。
知道如何做到这一点吗?
任何帮助将不胜感激 。谢谢你。
您可以调用您的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);
但这不会在注销后自动关闭浏览器......我还没有弄清楚如何做到这一点?
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;
}
MSDN 中的这个帖子可能对您有帮助: