Cloud Endpoints-Python的自定义身份验证(用户模型)

时间:2014-07-02 17:55:28

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

我正在开发一个带有GAE后端的Android应用程序,用于会话等。 我想使用Google Cloud Endpoint并使用自定义身份验证用户模型开发API。我不想使用谷歌的oauth。我想实现一个简单的电子邮件/传递用户身份验证模型与基于会话的令牌。我对GAE没有任何经验。我曾在python和它的框架(django,flask等)工作过。

过去一周我一直在寻找这种样本项目(没有运气)。

有人可以向我提供有关如何使用会话管理和csrf保护以及ssl实现此类端点的示例代码/资源吗?

Ps:如果您认为云端点对我的应用程序(服务器后端)来说不是一个好方法,那么请指导我一个可以帮助我创建自己的RESTful api并使用JSON编码+ crsf保护和会话管理的源代码。

我已经看到了以下内容,但没有一个有详细的解决方案:

1 个答案:

答案 0 :(得分:11)

你正在乘车。这不是一个简单的过程,但我已经成功地完成了你正在寻找的东西 - 尽管是以一种轻微的hackish方式。

首先,有一个GAE(在Python中)的样板项目,它使用webapp2的附加功能实现自定义电子邮件/密码登录系统:http://appengine.beecoss.com/

它遵循此博客文章中详细说明的设置自定义身份验证的准则:http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app-engine/

此项目将进行设置,以便您的用户在登录时启动会话。现在,为了在您的终端中访问此会话的用户信息,您将按照first StackOverflow link you posted的说明进行操作。

在执行上述步骤之后,密钥是将端点中的会话密钥与样板代码的配置文件中的会话密钥相匹配。然后,您将能够获得请求的用户,并在验证后通过端点调用:

    self.get_user_from_cookie()

    if not self.user:
        raise endpoints.UnauthorizedException('Invalid token.')

这就是它如何适用于自定义身份验证,这是非常荒谬的,所以如果你已经习惯了Django并希望以这种方式实现你的应用程序,那就做吧。对我来说,现在“为时已晚了”,我鄙视谷歌仅记录仅适用于Google帐户持有人的身份验证方案。

OP,只需在GAE上使用Django并拯救自己的挫败感。我确信Django社区可以提供与移动应用程序的快速集成。

没有人想强迫他们的应用用户拥有Google帐户才能登录Google。停下来。