验证从Google Android客户端到Google App Engine的POST请求的简便方法?

时间:2009-07-09 05:36:58

标签: android google-app-engine authentication

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

我觉得这应该很容易,我错过了一些明显的东西。

谢谢!

2 个答案:

答案 0 :(得分:9)

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

可以通过编程方式验证用户。在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。
  5. 有关难以忍受的细节,请参阅上面链接的appengine_rpc.py来源。

答案 1 :(得分:2)

从Android 2.0开始,您可以使用AccountManager为类型为com.google的帐户请求身份验证令牌。然后,您可以通过点击URL:

向App Engine应用程序验证用户身份
  

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

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

如果没有完全符合此示例的示例代码,您可以查看Sample Sync Adapter代码(与SDK捆绑在一起),以获取有关请求身份验证令牌的一般概念。


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