2016-08-16 42 views
1

我目前对如何继续使用我的应用程序感到茫然。 我目前正在按照教程进行身份验证,并且一切都很顺利。 Azure Mobile Apps AuthenticationAzure移动应用程序 - Android身份验证获取更多信息

我无所适从的是如何使用在此过程之后存储的id和/或令牌来获取基本配置文件信息,例如用户电子邮件或其个人资料照片。 从我在网上阅读这只是一个azureId存储不是谷歌配置文件ID,我会用谷歌+ APIS。

有没有人有一个参考,显示新手程序员如何获得使用谷歌API所需的电子邮件地址或userId。 我能找到的唯一参考资料是2014年的博客文章。当然必须有一个更简单的方法。还有一个专门针对移动应用而不是移动服务的文章。 Blog post describing how to expand on authentication with google on mobile services which is no use

这里是我的过程

// We first try to load a token cache if one exists. 
    Log.v(TAG, "Click"+USERIDPREF); 
    if (loadUserTokenCache(mClient)) 
    { 
     Log.v(TAG, "table" +mClient.getCurrentUser().toString()); 
     createTable(); 
     returnHome(); 
    } 
    // If we failed to load a token cache, login and create a token cache 
    else 
    { 
     // Login using the Google provider. 
     final ListenableFuture<MobileServiceUser> mLogin = mClient.login(MobileServiceAuthenticationProvider.Google); 
     Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() { 
      @Override 
      public void onFailure(Throwable exc) { 
       Log.v(TAG, "Login On fail " +exc.getMessage()); 
      } 
      @Override 
      public void onSuccess(MobileServiceUser user) { 
       Log.v(TAG, "On Success"); 
       createTable(); 
       cacheUserToken(mClient.getCurrentUser()); 
       Log.v(TAG, "On Success" + mClient.getCurrentUser()); 
       returnHome(); 
      } 
     }); 
    } 
+0

从2014年引用的帖子很旧,应该忽略。它正在讨论已弃用的移动服务,而现在您正在使用移动应用程序。 –

+0

我改变了我刚刚收录的标题,所以人们不会认为我的解决方案只是Google搜索。 –

回答

1

你贴有答案的第一个文档链接。 From https://azure.microsoft.com/en-us/documentation/articles/app-service-authentication-overview/#working-with-user-identities-in-your-application

用任何语言或框架编写的代码都可以从这些头文件中获取所需的信息。对于ASP.NET 4.6应用程序,ClaimsPrincipal自动设置为适当的值。

您的应用程序还可以通过您的应用程序的端点/.auth/me上的HTTP GET获取更多用户详细信息。 包含的有效令牌将返回一个JSON有效负载,其中包含有关正在使用的提供程序,底层提供程序令牌和其他一些用户信息的详细信息。移动应用程序服务器SDK提供使用此数据的帮助器方法。有关更多信息,请参见How to use the Azure Mobile Apps Node.js SDKWork with the .NET backend server SDK for Azure Mobile Apps

所以总结一下,你必须根据不同的选项上的语言使用,但最跨平台的选择是发送一个验证请求您的移动应用/.auth/me端点。您将返回一个JSON对象,其中包含一堆用户声明(名称,提供商特定的ID,电子邮件等)。

+0

HI chris,通过向/.auth/me端点发出请求u意味着我在azure门户授权标签中设置的变量是否正确?以及您认为值是android客户端sdk returnsthe getUserId()在.net后端? –

+0

对不起,我不知道你指的是什么变量。您不需要在门户中执行或引用任何内容。您从字面上只需要从您的应用程序代码中向https:// {host} /.auth/me发送经过身份验证的HTTP GET请求。 –

+0

所以说例如其https://appservicename.azurewebsites.net/.auth/me我回来的是“你正在寻找的资源已被删除,名称已更改,或暂时不可用”。 –

相关问题