对于一个项目,我将在 Google App Engine 上创建一个应用程序,其中:
- 讨论领袖可以在网站本身上使用他们的电子邮件地址(或 OpenID 或 Google 帐户)注册以使用它。
- 在应用程序管理页面中,他们可以创建一个小组讨论,他们可以根据他们的电子邮件地址为其添加用户
- 然后这些用户应该会收到生成的帐户详细信息(如果他们还没有帐户),使他们能够使用新创建的帐户登录该小组讨论。
我不想要求讨论组长必须拥有 Google 帐户或 OpenID 帐户才能注册该应用程序,并且所有用户其他帐户都必须由讨论组长生成。
但是 Google App Engine 似乎只支持 Google 帐户和 OpenID 帐户。我该怎么做?在仍然支持 GAE 用户 API 的 Google App Engine 中,是否存在用于创建领导者帐户和生成用户帐户的现有模式?
最佳答案
EngineAuth
几个月前,我开发了一个名为 EngineAuth 的 python 包.它使用中间件拦截用于身份验证的请求。
这是一个示例应用程序:
http://engineauth.scotchmedia.com/
来源:
https://github.com/scotch/engineauth
EngineAuth有多种认证策略。其中之一是密码。
Password需要一个密码和一个字符串(可以是电子邮件)。如果字符串在数据存储中,它会根据存储的哈希值检查密码。如果匹配,则让用户登录。如果字符串不在数据存储中,则创建新用户。
EngineAuth还有一个 appengine_openid允许您使用 App Engine Openid 登录用户的策略。
关于 EngineAuth 的好处是,如果您的用户登录 App Engine OpenID,然后他们使用密码登录,它会将用户与这两种策略相关联。
aeauth
我对 EngineAuth 并不完全满意但是,所以我决定创建一个更依赖于 webapp2 的模块设计。我从未完成,因为我现在正在用 Go 开发项目,但也许代码会有所帮助。
webapp2 auth
EngineAuth 的大部分密码功能和 aeauth取自 webapp2_extras/auth 可能会给你一个简单的方法。
关于python - 在 Google App Engine 中生成用户帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11083776/