Django的用户注册应用程序
Django(72)许多Web应用程序的一个重要部分是在无状态HTTP协议的顶部创建状态的错觉。虽然有一些天真的方法几乎工作(假设具有相同IP地址的个体是相同的,但是,底部只有一个解决方案,可充分工作:饼干。
对于许多应用cookie的识别 - 没有任何进一步的识别 - 就足够了1但是,在用户输入重要或私有数据的情况下也有许多情况,并且在允许它们访问应用程序及其数据之前,我们需要验证用户。
作为django.框架已经成长,一种可插拔用户注册的生态系统也已经成长。这些注册申请全部连接到Django验证和会话模块,并且有很多重叠,但为您的应用选择最好的一个可以让您的生活更简单。
滚动自己的注册系统
对于任何人的第一个Django应用程序,他们可能会在Django之上推动自己的用户注册验证模块。这种方法没有任何恐怖错误,但它确实违反了不要重复自己,并且通常您最终会使用较少的特征和更少的测试解决方案,而不是使用一个可插拔后端。
如果您尝试使用用户注册的新颖,那么这可能是您唯一的选项,但通常您只能在您遇到现有注册系统无法处理的要求时滚动自己的注册系统(以及在哪里修补修补需要的功能是不可取的)。
Django注册
Django可插拔注册的金标准是Django注册应用程序。(如果你不同意,请尝试搜索Django注册
。;)Django注册是一个非常坚实的实现一个非常标准的注册工作流程:注册帐户,通过电子邮件激活帐户,然后登录。
对于许多网站,在Django注册中插入是在您的应用中实施注册的最简单而最完整的方法。它不支持框中的一件功能是OpenID身份验证。
肯定可以将OpenID支持集成到Django注册中,这是一个合理的解决方案,尽管它需要一些精神能量2。
Django-Openid
如果您希望您的网站支持OpenID,那么Django-Openid是你的罗马。或者至少,它是您罗马建立的基础。django-Openid是与Django平行的平行验证模块。它提供了通过OpenID执行用户身份验证的基础支持,但您将结束写一点的自定义代码以将其集成到您的应用程序中。
如果您只对支持OpenID感兴趣,那么这可能是您要使用的解决方案。如果你真的很死了Django注册而且仍然想要OpenID,那么这也是你想要实现的工具。
django-authopenid.
我提到的最后一个注册解决方案是django-authopenid.。它为OpenID提供插件支持和传统认证,因此,这是一个非常有吸引力的选择。最近我已经用Django-authopenid用于我的项目,它具有我丰富的认可。
也就是说,它并不像抛光Django注册,即使它将插入并开箱即用,你几乎肯定会最终为您的目的重写其模板(特别是,我认为这是FIRESSET.
元素不提供一致的横梁体验)。此外,它不需要用户使用像Django注册等身份验证电子邮件验证其电子邮件,这可能是您觉得重要的功能。
对于它的任何粗糙度,它提供了开箱即用的帐户管理,提供与现有帐户关联OpenID登录或为OpenID登录创建新帐户的功能,并且如果您愿意调整它,则是一个优秀的工具 -略微满足您的需求。
是否有任何其他可插入的注册应用程序,我应该提到?
我认为我们已经开始看到这方面的逐步改善。越来越多的Web应用程序正在确认通过使用注册和登录授权创建的糟糕的用户界面,并尝试全部最小化或避免注册/登录。我希望趋势继续持续,但我更有希望我们能找到一个允许良好的用户体验的妥协,仍然允许网站执行一些有意义的身份认证。↩
整个Openid的单词都是令人困惑和令人困惑的。什么时候堆栈溢出去了,成为少数几个网站中的一个只支持Openid,看起来少数民族令人印象深刻专业开发人员谁对不得不使用OpenID感到不安。这是可怕的,因为专业开发商很可能是普通透明意识渗透率最高的群体。(相比雅虎的研究关于公众的Openid意识,基本上透露,很少有人有一个OpenID的线索。
在另一边,有突出的狂热品对网站同样令人满意需要另一个登录。如果您只能支持OpenID或非OpenID,那么明确支持OpenID是一个自杀选择,除非您的UserBase是开发人员,无论如何都可能是错误的选择。
暂时,支持OpenID和传统注册似乎是适当的决定。然而,正如额外的异常服务骤雨,它将进一步遵守通用登录服务,并且它将越来越尴尬地支持所有这些。它将成为一个有趣的地区。↩