外包Android应用登录

时间:2013-03-19 20:01:58

标签: android python google-app-engine oauth-2.0 endpoint

我一直在阅读这么多关于使用OAuth2.0和谷歌端点的问题。我还读过OpenID for android apps that require SignIn。也许我会进入圈子;我不知道。所以也许这里有人可以帮助我。

通常,当我开发后端时,我会推出自己的用户身份验证协议。类似的东西:

  • 注册:用户POST注册表到我的后端;后端将用户添加到user_db:电子邮件,用户名,密码等

  • 登录:用户POST登录表单(用户名,密码);后端返回令牌;用户使用令牌随后调用我的后端api来访问任何内容;直到用户退出。

但我现在正在开发专门针对移动应用程序的后端:Android移动应用程序,其中app-engine后端使用python和google-endpoint注释构建。因此,我没有使用典型的Login or Register页面,而是希望外包用户登录:我希望用户通过OAuth2.0使用他们的Google帐户登录我的应用。所以新流程将是这样的:

  • 用户从Google Play下载我的应用
  • 使用google OAuth2.0进行用户登录(或我的应用自动执行? - 首选)
  • 使用从Google OAuth2.0用户获得的令牌(?)
  • 可以访问我的后端api以执行任何操作。

很自然地,我的问题是:成功完成此任务的人是否愿意用一些代码分享他们的智慧?另外,请解释我的后端如何知道用户确实已经过身份验证。用户注销怎么样,我能处理吗?这又是一个带有app-engine后端的Android应用程序(使用端点注释)。

1 个答案:

答案 0 :(得分:1)

我可以用一套新的子弹回答你的部分问题:

新流程将是这样的:

  • 用户下载应用(接受GET_ACCOUNTS和USE_CREDENTIALS权限)
  • 用户第一次运行应用程序(激活它) (您的应用现在有权对此设备上的Google帐户进行身份验证。)
  • 如果用户拥有多个Google帐户,您可以询问他们使用哪个帐户。
  • 您对所选的Google帐户进行身份验证 (此are here所需的代码示例。)
  • 您的服务器代码会收到App Engine'用户' object作为Endpoint调用的第一个参数。

上面的链接也会导致tic-tac-toe示例。它的后端是Java,但它应该对你有用,特别是Android的东西。当我的头脑从阅读中旋转时,是时候开始编码了。