【问题标题】:Easy way to authenticate POST requests from a Google Android client to Google App Engine?验证从 Google Android 客户端到 Google App Engine 的 POST 请求的简单方法?
【发布时间】:2009-07-09 05:36:57
【问题描述】:

我希望能够从 Android 应用向 App Engine 发送 POST 请求,并将其链接到用户的 Google 帐户。我读到您需要获取身份验证令牌并将其与 POST 请求一起发送。 Android 是否提供了请求此令牌的方法? GAE 将如何处理它?

我觉得这应该很容易,但我遗漏了一些明显的东西。

谢谢!

【问题讨论】:

    标签: android google-app-engine authentication


    【解决方案1】:

    请参阅my blog post,了解如何使用手机中存储的凭据对 App Engine 应用进行身份验证。

    可以通过编程方式对用户进行身份验证。在 Python SDK 中,appengine_rpc module 执行此功能。简而言之,过程是这样的:

    1. 使用ClientLogin 获取给定用户用户名和密码的一次性身份验证令牌。
    2. 向 yourapp.appspot.com/_ah/login 发出 POST 请求,参数为 continue=http://localhost/&auth=authtoken(其中 authtoken 是您从第 1 步获得的一次性令牌)。
    3. 拦截返回的 302 响应并捕获返回的 Google cookie。
    4. 为所有后续请求提供 cookie。

    有关令人痛苦的细节,请参阅上面链接的 appengine_rpc.py 的源代码。

    【讨论】:

    • 我是 Android 新手.. 快速浏览一下.. 这应该在 2 年后仍然有用.. 对吧?!
    【解决方案2】:

    从 Android 2.0 开始,您可以使用 AccountManagercom.google 类型的帐户请求身份验证令牌。然后,您可以通过点击 url 向 App Engine 应用程序验证用户:

    http://[yourapp].appspot.com/_ah/login?auth=[theauthtoken]

    响应中设置的 cookie 可以搭载到您应用的未来请求中,以针对您的应用对用户进行身份验证。

    如果没有执行此操作的示例代码,您可以查看Sample Sync Adapter 代码(与 SDK 捆绑在一起),了解有关请求身份验证令牌的一般概念。


    编辑:刚刚意识到 Nick 写了第二部分,但 AccountManager#getAuthToken 位是 Android 2.0 的新内容。

    【讨论】:

      猜你喜欢
      • 2015-05-16
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2012-02-10
      • 2011-05-29
      • 1970-01-01
      • 2019-03-16
      相关资源
      最近更新 更多