android - 使用 Android AccountManager 通过 UserService 做 AppEngine 登录

标签 android google-app-engine oauth

我正在使用 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/

相关文章:

java - ImageView MotionEvent如果有两个指针,则停止ACTION_UP

android - 如何在方向更改时保留所选微调器/下拉项的状态?

java - 如何在Android Studio中与whatsapp共享声音?

java - 处理空值

Facebook oauth 重定向在 iframe 中不起作用

java - 使用 Android 通过 OAuth1 调用 Open Bank Project

javax.crypto.BadPaddingException AES

java - 如何分析Objectify的性能?

c# - 无法从使用自定义运行时在 Docker 中运行 .NET Core 应用程序的 App Engine 连接到 Google Cloud SQL 中的 postgres

oauth - Meteor.js Google Oauth 问题