Django - 身份验证,使用电子邮件确认注册

Posted

技术标签:

【中文标题】Django - 身份验证,使用电子邮件确认注册【英文标题】:Django - authentication, registration with email confirmation 【发布时间】:2011-09-23 05:19:26 【问题描述】:

我正在查看用于身份验证的 API

https://docs.djangoproject.com/en/1.3/topics/auth/

我似乎找不到关于发送确认电子邮件的简单用户注册表的信息,因为这是网站上的常用方式。

我想我可以这样做:

1) 显示表单 2) 用户输入信息并提交 3)将用户保存为非活动状态,并带有确认码 4) 发送带有确认码的链接 5) 用户点击确认链接并激活

这似乎并不难,但我感觉这可能已经完成了,而且还有很多边缘情况需要考虑。

【问题讨论】:

【参考方案1】:

它没有内置在 Django 中。有一个名为django-allauth 的可重复使用的应用程序,它将满足您的需求。

以前推荐使用名为 django-registration 的应用,但现在该应用已无人维护且已过时。

编者注:截至 2016 年 12 月,django-registration 并未停止维护。

【讨论】:

我也在检查 Pinaxproject.com,但它有点压倒性。它确实支持注册等有用的东西。 Pinax 有效,但根据我的经验,我不推荐它。它以自己独特的方式做了太多的事情,然后如果你想改变任何东西,你会希望你从头开始编写它。 应用程序 django-registration 在github.com/macropin/django-registration维护【参考方案2】:

虽然django-registration 曾经是当前的注册系统,但它一直是abandoned by the maintainer 和doesn't work on Django 1.6 without patching。

试试django-allauth - 如果我在寻找时知道它,我会使用它。 (事实证明,我先发现了这个问题,使用了django-registration,浪费了很多时间。)

编辑 10/2016:看起来 django-registration 再次得到维护。现在在 GitHub 上:https://github.com/ubernostrum/django-registration

【讨论】:

很好,我正在查看 django-registration 包;但是它看起来没有维护,这让我很警惕。但 django-allauth 看起来很有希望。【参考方案3】:

你可以这样做:

定义一个函数来激活用户(即 def 激活(请求)) 在 url.py 中配置该函数的路由(即 /activate/) 创建一个表单来注册用户 创建post函数来创建用户 当您创建用户时,将字段“is_active”设置为 0。 在同一个函数中发送带有链接的电子邮件,该链接必须将目标作为配置的路由

【讨论】:

以上是关于Django - 身份验证,使用电子邮件确认注册的主要内容,如果未能解决你的问题,请参考以下文章

Rails 中的电子邮件确认,无需使用任何现有的身份验证 gem/插件

在确认注册之前验证用户的电子邮件地址,使用 Flutter 和 Firebase

Django中的电子邮件确认实现

用户身份验证模板标签不起作用-Django

Firebase 确认电子邮件未发送

设计在更新时不确认电子邮件