【发布时间】: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 帐户关联的高分的朋友。
设计
- 在 Android 应用程序中,只要用户希望登录,就使用 OpenId 进行身份验证(使用类似于 Nick 发布的 here 的内容。
- 从返回的 cookie 中获取 OpenId 令牌并将其与当前用户相关联。
- 对 GAE 服务进行 Web 服务调用,将令牌添加为 cookie 并包含高分
- Web 服务将验证令牌是否有效
- Web 服务将确定与令牌关联的唯一 Google 帐户 ID(不知道如何执行此操作,但假设应该有办法执行此操作)并根据交叉引用表查找该唯一 ID 以查找用户在游戏中的 ID(之前在帐户设置期间创建)
- 保存与游戏内 ID 关联的高分。
- 允许注销,以便其他用户可以使用其 Google 帐户登录游戏并重复上述过程
感谢您的帮助
【问题讨论】:
-
这些文章并不是真正的重复。这特别是关于我没有看到的特定部分的安全性,即您如何将手机交给朋友并让他们登录到他们的帐户进行游戏。
标签: android google-app-engine google-openid