有谁知道或知道我可以学习如何使用python和谷歌应用引擎创建自定义身份验证过程?
我不想使用谷歌帐户进行身份验证,并希望能够创建自己的用户.
如果不是专门针对谷歌应用引擎,任何资源如何使用python和django实现身份验证?
django 1.0今天在Google AppEngine上更新了.但你可以像其他任何你不能真正使用会话的用户身份验证一样,因为它非常庞大.
http://gaeutilities.appspot.com/中有一个会话实用程序
http://gaeutilities.appspot.com/session
http://code.google.com/p/gaeutilities/
要么,
您必须创建自己的用户表并散列或加密密码,然后可能创建一个令牌系统,模拟会话只使用令牌哈希或uuid cookie(会话只是cookie).
我已经使用基本的google.webapp请求和响应标头实现了一些.我通常使用uuids作为主键作为用户ID,然后加密用户密码并让他们的电子邮件重置.
如果您想授权用户对数据进行外部访问,您可以查看OAuth以获取应用程序访问权限.
如果您只想按ID存储数据并且面向消费者,可能只需使用openid就像stackoverflow一样,然后将配置文件数据附加到该标识符,例如django profiles(http://code.google.com/p/openid-selector /).
django 1.0今天刚刚出现在GAE上,但我认为存在相同的问题,没有会话,你必须真正创建自己的存储会话数据.
这是一个非常开箱即用的解决方案,运行良好:http: //code.scotchmedia.com/engineauth/docs/index.html
它内置了对Facebook,Google +,Twitter,LinkedIn,GitHub和OpenId(通过Google App Engine)的支持.
你只需要将用户重定向到/auth/facebook
或/auth/google
等等(这个网址是可自定义的).
它还实现了两个类:User
并且UserProfile
,每个User
都是您应用中的唯一帐户,可能与一个或多个相关UserProfiles
- 哪一个是唯一User
必须登录到您的应用程序的登录策略(如果不清楚,那是因为我的英语是非常糟糕,文档解释得更好).
PS:文档不是很完整,但代码非常简单,简短且不言自明.此外,有一个讨论,这里在此笔者提供了各种答案,迷茫和beggining用户的问题.
在OpenID的消费者(优秀的"应用引擎样本"开源项目的一部分),目前的工作(尽管其自述,这是老的警告),希望让你使用的OpenID为用户的登录.
django的auth也可用,例如通过这个项目(至少users
部分,不一定groups
,permissions
虽然他们可能随时让他们工作).
我看到这会在谷歌中弹出,每当你搜索"自定义登录应用程序引擎"时,我决定给出一个为我提供服务的答案.以下是示例应用程序 https://github.com/fredrikbonander/Webapp2-Sample-Applications
这用
webapp2(已在GAE 1.6.2中)
Jinja2(已在GAE 1.6.2中)
Webapp2似乎是GAE的最佳选择(建立在webapp之上,因此未来证明)所以使用GAE原生支持的框架进行身份验证是一个好主意.还有许多其他框架,但是必须在用户部分进行大量的黑客攻击才能使它们工作.对于想要构建"稳定"站点的人来说,这种黑客攻击工作是非常不受欢迎的.
我也意识到现在有对GAE的SQL支持,并且本机将支持django.我们都知道django内置了用户认证系统.虽然,我认为,尤其是在云世界,NoSQL是未来.我相信NoSQL将来会有一个像django一样好的框架.但那就是我,你的要求可能会要求其他东西.
这是一篇优秀且相对较新的(2013年1月)博客文章,标题为Google App Engine上的webapp2用户身份验证,以及相关的GitHub回购:abahgat/webapp2-user-accounts
.