我已经成功创建了一个使用Azure应用服务成功登录Google的简单Android应用程序。
ListenableFuture<MobileServiceUser> mLogin = mClient.login(MobileServiceAuthenticationProvider.Google);
Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() {
@Override
public void onFailure(Throwable exc) {
createAndShowDialog(exc.toString(), "Error");
}
@Override
public void onSuccess(MobileServiceUser user) {
createAndShowDialog(String.format(
"You are now logged in - %1$2s",
user.getUserId()), "Success");
}
});
此时我已成功登录并已收到Auth令牌和UserID。
我的问题是没有在线我可以找到任何方式为登录用户获取额外的个人资料信息。我已经看到了一些关于使用ServiceUser而不是MobileServiceUser的建议,但似乎没有运气制作ServiceUser对象。这可以在这里找到。 How to retrieve user's additional information from Azure Mobile/App Services?
有谁知道解决方案?
提前致谢!
答案 0 :(得分:1)
如果使用here所述的简易身份验证,则可以简单地将端点/.auth/me
附加到URL。例如:
登录终端:https://easyauthkaushal.azurewebsites.net/.auth/login/google
用户详细信息:https://easyauthkaushal.azurewebsites.net/.auth/me
另请参阅有关使用声明和范围的Google文档。看到这个: OAuth 2.0 Scopes for Google APIs
答案 1 :(得分:0)
除了身份验证令牌和用户ID分配给用户之外,获取用户信息的唯一方法是转到客户端定向的OAuth路由。 Here是关于它的MSDN文章。基本上,您需要自己向Google发出OAuth电话,他们会让您访问您的应用授权拥有的所有内容,包括姓名,并且您需要将从中获得的令牌传递给您的移动/应用服务。