【问题标题】:Android authentication to google accounts passed on to Google App Engine对 Google 帐户的 Android 身份验证传递到 Google App Engine
【发布时间】:2011-08-18 12:12:08
【问题描述】:

在我深入研究实现这个特定设计的细节之前,我想要一些关于我是否正确接近它的建议/验证。我有 Android 的初学者知识,Python、GAE 和 OpenId 的高级初学者。

环境

  • Android 应用程序
  • 在 Google App Engine 上使用 Python 构建的网络服务
  • 拥有 Google 帐户的用户

场景

我想在我的 Android 应用程序中启用登录功能,而无需在 GAE 中编写自己的身份验证系统。在应用程序中,用户应该能够以访客身份玩游戏,但不能保存高分。如果用户想要保存他的高分,他将在 Android 设备上对他的 Google 帐户进行身份验证。在游戏结束时,经过身份验证的用户的高分将通过 Google App Engine 上的游戏网络服务保存(与他的 Google 帐户相关联)。用户还应该能够退出并将设备交给也可以登录、玩游戏并保存与她的 Google 帐户关联的高分的朋友。

设计

  1. 在 Android 应用程序中,只要用户希望登录,就使用 OpenId 进行身份验证(使用类似于 Nick 发布的 here 的内容。
  2. 从返回的 cookie 中获取 OpenId 令牌并将其与当前用户相关联。
  3. 对 GAE 服务进行 Web 服务调用,将令牌添加为 cookie 并包含高分
  4. Web 服务将验证令牌是否有效
  5. Web 服务将确定与令牌关联的唯一 Google 帐户 ID(不知道如何执行此操作,但假设应该有办法执行此操作)并根据交叉引用表查找该唯一 ID 以查找用户在游戏中的 ID(之前在帐户设置期间创建)
  6. 保存与游戏内 ID 关联的高分。
  7. 允许注销,以便其他用户可以使用其 Google 帐户登录游戏并重复上述过程

感谢您的帮助

【问题讨论】:

标签: android google-app-engine google-openid


【解决方案1】:

您可能会发现 2011 Android + App Engine IO 谈话很有帮助。

【讨论】:

    【解决方案2】:

    我会查看 Google 的 OpenID 而不是 OAuth。 OpenID 是联合登录的协议。见Google's information on OpenID

    【讨论】:

    • 所以如果我用上面的 OpenID 替换每个 OAuth,流程是否有意义?
    • 谷歌网站上有一个 [good flow] (code.google.com/apis/accounts/docs/OpenID.html#Interaction)。它会引导您完成整个互动。
    • 当然,我仍然关心的是某人如何将手机交给朋友并让他们登录玩游戏。 android accountmanager 会允许吗?
    • 我相信(但不是专家)Android 帐户管理器允许您拥有多个 Google 帐户。您只需要在应用程序中选择一种方法来选择要使用的帐户。
    • 我正在调查它并将我发现的问题添加到问题中
    猜你喜欢
    • 2011-02-12
    • 2015-05-16
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    相关资源
    最近更新 更多