Android客户端 - 使用Google Cloud Endpoints进行Google App引擎身份验证

时间:2015-04-28 21:35:41

标签: android google-app-engine google-cloud-endpoints

我有一个用Python / Google Appengine / WebApp2框架编写的Web应用程序。 Web应用程序具有本机(自定义)身份验证。用户ID /密码由应用程序管理(并且不使用Google帐户)。

Web应用程序也需要扩展到Mobile客户端。因此,我正在开发原生Android客户端应用程序并尝试与Google Appengine集成。

对于从Android客户端到Google应用引擎的身份验证,我试图通过使用Google Cloud Endpoints来保持简单。您能否建议我的方法是否正确?

  1. 使用Google应用引擎控制台生成白名单客户端ID(适用于Android,Web和最终的IOS)。
  2. 根据此处建议的白名单客户端(Web,Android和IOS)创建Google Cloud Endpoint后端Api(在Python中) - https://cloud.google.com/appengine/docs/python/endpoints/getstarted/backend/
  3. 创建后端库。
  4. 将库导入Android客户端
  5. 我对以上情况的期望如下 -

    1. 使用Google Cloud Endpoints Api(来自Android客户端)的最终用户将使用Google App引擎对Android客户端进行身份验证。
    2. 作为Client-GAE的安全身份验证的一部分,我可以将用户login-id作为API调用的参数传递,并获取该特定用户ID的数据/发布数据。
    3. 我正在使用移动客户端中的本地存储为最终用户存储userid(而非密码)。
    4. 您能否建议我的方法是否正确?我有意避免使用从Android客户端到GAE的基于Google帐户的身份验证。

1 个答案:

答案 0 :(得分:0)

为了让Google Cloud Endpoints将App Engine用户实例注入您的API方法,您需要在Android应用中使用Google帐户。 Android代码中的服务构建器采用GoogleAccountCredential。

您仍然可以支持自己的用户ID和密码,但如果您这样做,则无法利用用户注入。

[编辑]

如果您不想在Android应用中使用Google帐户,请忘记SHA1和API密钥。你将不得不推出自己的身份证明。它取决于您如何执行此操作,但您可以使用带有用户名和密码并返回令牌的API调用启动会话。例如,所有其他API调用可能会在返回结果之前获取该标记并检查其有效性。