我正在使用 Google AppEngine,我正在使用他们的 UserService类来处理用户帐户和登录。我不需要访问有关他们帐户的任何信息 - 我只是用它来区分用户。
现在网站大多只是一个后端。我在前端使用 Android 应用程序。我知道您可以使用 AccountManager 在设备上访问 Google 用户帐户.这绝对是让用户登录的最安全方式。我有很多工作要做。
我遇到的问题是将登录信息从 Android 应用程序传递到 AppEngine 网站。从我已经准备好的情况来看,我应该使用 OAuth,并且我看到了演练 here用于将它与 Google API 一起使用,但我不需要访问 API,只需登录即可。我已经能够在应用程序中获取身份验证 token ,但我不确定如何将其传递到网站,或者如果这是正确的方向。我是否应该在服务器上使用特定的 OAuth 登录名,例如 this guy ?
如有任何帮助,我们将不胜感激!
相关代码如下:
服务器(GAE):
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user == null) {
resp.sendRedirect(userService.createLoginURL(req.getRequestURI()));
return;
}
客户端(安卓):
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType("com.google");
Bundle options = new Bundle();
am.getAuthToken(
accounts[0], // Account retrieved using getAccountsByType()
"Manage your tasks", // Auth scope
options, // Authenticator-specific options
this, // Your activity
new OnTokenAcquired(), // Callback called when a token is successfully acquired
new Handler(new OnError()));
//Now what!?
最佳答案
这blog post完全满足我的需求。
对于两个替代(在我看来不太理想)的解决方案,请查看此线程:Webservice credentials - OpenID/Android AccountManager?
关于android - 使用 Android AccountManager 通过 UserService 做 AppEngine 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13887143/