【发布时间】:2014-09-25 18:00:11
【问题描述】:
我正在尝试在 Google Endpoints 中创建一种简单的最小会话管理系统。
我在我的 Android 应用上对用户进行身份验证。为了进行经过身份验证的 Endpoint API 调用,我计划通过在第一次从 Android 应用程序调用 Endpoints API 时传递 idToken 在 Endpoint 服务器上验证用户一次。
然后,我会为该用户分配一个session_id(比如一个数字)。这个session_id 将被传回给那个安卓应用。 Cloud Endpoint 服务器在接下来的 24 小时内不会验证用户。
当 Android 应用程序使用该 session_id 调用端点 API 时,假设它来自经过身份验证的用户,我将执行所需的操作。
关注
如果有人嗅到session_id,他将能够执行经过身份验证的用户的操作。
问题 1
将敏感数据(如session_id)从 Android 应用程序传递到 Google Cloud Endpoints 是否安全(且方法正确)?
Q 2 即使我没有为我的网站启用 HTTPS,Android 应用程序和 Cloud Endpoints 之间的所有通信是否默认通过 HTTPS 完成? Official doc 说:
重要提示:Google Cloud Endpoints 需要 SSL。如果您需要访问 您在不支持 SSL 的系统中的后端 API,您需要 更新系统以支持 SSL 或使用代理。
另一个Official doc 说:
在两个方法装饰器中,我们提供了指定位置的路径 该方法服务于请求。指定的值附加到 API 路径,例如,如果指定了值 hellogreeting, 路径是 https://your-app-id.appspot.com/_ah/api/helloworld/v1/hellogreeting。 对于 greetings.getGreeting,路径是 hellogreeting/{id} 其中 {id} 是必需的,否则您的 API 方法将不会收到传入的请求 论据。
注意: 我没有为我的网站启用 SSL (HTTPS)。我在 web 和 Android/Java 上使用 GAE Python。我有一个网站和一个 Android 应用程序,我正在从 Google 身份验证迁移到基于 Google Identity Toolkit 的多个提供商身份验证(如 Facebook、Google 等)。
【问题讨论】:
标签: android python google-app-engine google-cloud-endpoints