4

我正在使用 Google AppEngine,并且正在使用他们的UserService类来处理用户帐户和登录。我不需要访问有关他们帐户的任何信息 - 我只是用它来区分用户。

现在该网站大多只是一个后端。我正在为前端使用 Android 应用程序。我知道您可以使用AccountManager在设备上访问 Google 用户帐户。这绝对是让用户登录的最安全的方式。我有很多工作要做。

我被卡住的地方是将登录信息从 Android 应用程序传递到 AppEngine 网站。从我准备好的情况来看,我应该使用 OAuth,我在这里看到了将它与 Google API 一起使用的演练,但我不需要访问 API,只需登录即可。我已经能够获得身份验证应用程序中的令牌,但我不确定如何将其传递给网站,或者这是否是正确的方向。我应该像这个人一样在服务器上使用特定的 OAuth 登录吗?

任何帮助将不胜感激!

以下是相关代码:

服务器(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!?
4

1 回答 1

3

这篇文正好涵盖了我所需要的。

对于两个替代(在我看来不太理想)解决方案,请查看此线程:Webservice credentials - OpenID/Android AccountManager?

于 2012-12-17T17:42:57.123 回答