如何使用Google身份验证切换Microsoft MobileServiceClient上的用户

时间:2018-04-29 22:52:59

标签: android azure xamarin xamarin.android azure-mobile-services

我有一个使用Azure MobileServiceClient(DataService.client)的Xamarin Android应用程序。它设置为使用Google身份验证。我按如下方式登录:

          var user = await DataService.client.LoginAsync(this,
                MobileServiceAuthenticationProvider.Google, "myapp");

这很有效。它会打开浏览器进入Google登录页面并登录。一旦你在Android设备上执行此操作,它就不再提示您输入登录信息。我有一种情况,我想以不同的用户身份登录,以测试一些内部应用程序权限。我创建了一个注销函数,如下所示:

        await DataService.client.LogoutAsync();

这会将您注销,但下次需要进行身份验证时,它不会提示您输入凭据。它会将您作为同一个人重新登录。有没有办法清除登录信息,以便再次询问您的用户名?

1 个答案:

答案 0 :(得分:2)

AFAIK,MobileServiceClient.LogoutAsync()只清除移动客户端中当前MobileServiceClient实例的MobileServiceClient.CurrentUser。要完全注销,您需要在执行MobileServiceClient.LogoutAsync()之前手动向移动后端发送注销请求,如下所示。

Get https://{your-app-name}.azurewebsites.net/.auth/logout
Header X-ZUMO-AUTH:{MobileServiceClient.CurrentUser.MobileServiceAuthenticationToken}

您可以关注adrian hall关于Implementing a LogoutAsync() method的书籍的详细信息。