Django实现注册,往邮箱发送验证链接

由于最近要做个平台,在GitHub上下载了一个系统框架,想着为了安全,实现注册时往一个邮箱发送注册信息,由管理员来确认是否同意其注册。

感谢博主:https://blog.csdn.net/geek_xiong/article/details/90324013

大致就是参考了上面的博主的文章

首先解释一下怎么激活的,就是在user表中,加一个属性is_active,一开始注册时此属性的值为0,同时发送消息到邮箱,然后点击激活,使此属性的值变为1,登录的时候会判断,如果is_active的值为1则允许登录,否则不行

1.在系统的全局settings.py中配置邮箱的配置

所有代码希望还是自己敲一遍,加深印象,大致如下

2.设置邮箱的授权码

就是上面的配置的EMAIL_HOST_PASSWORD,也可以写成自己的邮箱密码,总归是不安全,希望还是设置一下邮箱授权码,我的是163的,具体步骤如下

由于我的已经设置过了所以是重置授权码

3.设置models,即建立一个表

4.写生成随机验证码的函数

第三步建立的表的code属性就是存储这个生成随机验证码函数生成的验证码,代码如下

5.写发送到邮箱信息的函数

这个函数同时带着保存信息到一开始在model中建立的表中的功能,代码如下

下面时注册函数中的设置

6.激活函数,即把is_active的值从0变为1的函数

7.url的配置如下

调用步骤:在注册函数中,同时调用上面写的send_register_email函数,即发送信息到邮箱的函数,然后此函数会调用models中创建的表,初始化一个用例,然后保存当前的邮箱及注册码,同时会发送一个链接到指定邮箱,链接是上面第七步的url配置链接,由ActiveUserView.as_view(),会调用第六步的激活函数也是激活类,然后把user的对应邮箱的用户的is_active的值改为1,即实现了邮箱验证

此前还实现了倒计时,就是点击注册后,会有个倒计时5秒的提示,如下

就是注册函数中返回到这个注册成功的页面,然后5秒后跳转到登录界面,代码如下

原文地址:https://www.cnblogs.com/JadenFK3326/p/11250009.html