我正在开发一个带有 GAE 后端的 Android 应用程序,用于 session 等。 我想使用 Google Cloud Endpoint 并开发具有自定义身份验证用户模型的 API。我不想使用谷歌的 oauth。我想使用基于 session 的 token 实现一个简单的电子邮件/通行证用户身份验证模型。我对 GAE 没有任何经验。我曾使用 python 及其框架(django、flask 等)。
过去一周我一直在寻找此类示例项目(没有运气)。
有人可以向我提供有关如何通过 session 管理和 csrf 保护以及 ssl 实现此类端点的示例代码/资源吗?
Ps:如果您认为云端点不是我的应用程序(服务器后端)的好方法,那么请指导我找到一个来源,它可以帮助我使用 JSON 编码 + crsf 保护和 session 管理创建我自己的 RESTful api。
我已经看过下面的但是都没有详细的解决方法:
最佳答案
你在兜风。这不是一个简单的过程,但我已经成功地完成了您正在寻找的事情——尽管是以一种有点老套的方式。
首先,有一个用于 GAE(在 Python 中)的样板项目,它使用 webapp2 的额外功能实现自定义电子邮件/密码登录系统:http://appengine.beecoss.com/
它遵循这篇博文中详述的自定义身份验证设置指南:http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app-engine/
此项目将进行设置,以便您的用户在登录后启动 session 。现在,为了在您的端点中访问此 session 的用户信息,您将按照 first StackOverflow link you posted 的说明进行操作。 .
执行前面的步骤后,关键是将端点中的 session key 与样板代码配置文件中的 session key 相匹配。然后,您将能够获取哪个用户发出了请求,并在经过验证后继续执行端点调用:
self.get_user_from_cookie()
if not self.user:
raise endpoints.UnauthorizedException('Invalid token.')
这就是自定义身份验证的工作方式,这非常荒谬,所以如果您习惯了 Django 并希望以这种方式实现您的应用程序,那就去做吧。对我来说“现在回头太晚了”,我鄙视谷歌只记录只对谷歌账户持有人有效的身份验证方案。
OP,只需在 GAE 上使用 Django 即可避免挫败感。我确信 Django 社区可以提供大量与移动应用程序的快速集成。
没有人愿意强制他们的应用程序用户拥有 Google 帐户才能登录,Google。停止它。
关于python - Cloud Endpoints-Python 的自定义身份验证(用户模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537865/