我已使用以下教程使用appauth将azure adb2c的登录集成到我的android应用中 Android appauth.
教程中没有提及如何退出应用程序。
Azure文档中也没有提及这一点。
有什么想法可以做到吗?
任何帮助将不胜感激。谢谢。
答案 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;
}
MSDN中的该线程可能对您有帮助: