Django实现发送邮件找回密码功能

  

在各大网站上,一定都遇到过找回密码的问题,通常采用的方式是通过发送带有验证码的邮件进行身份验证,本文将介绍通过Django实现邮件找回密码功能。

  

<强>

  

<强>功能流程:

  

1。首先在用户登录界面,添加“忘记密码”链接

  

2。生成随机验证码,发送邮件到用户信息中填写邮箱

  

3。在重置密码页面,验证填写验证码是否需匹配

  

4。重置密码成功,重新进入到登录页面

  

<>强技术点:

  

1。发送邮件使用Django内置的<代码> django.core.mail 实现

  

2。重置密码页面验证验证码填写是否匹配,提前将发送的验证码进行缓存,再进行匹配

  

  

在setting.py中,添加邮箱配置:

        EMAIL_USE_SSL=True   EMAIL_HOST=' smtp.163.com '   EMAIL_PORT=465   EMAIL_HOST_USER=皒xx@163.com”#帐号   EMAIL_HOST_PASSWORD=皒xx”#密码   DEFAULT_FROM_EMAIL=EMAIL_HOST_USER      

其中EMAIL_HOST根据邮箱进行设置,如果为QQ邮箱,即“smtp.qq.com”。

  

另外在邮箱中有两处配置:

  

1。开启POP3/SMTP服务(设置→POP3/SMTP/IMAP)

  

 Django实现发送邮件找回密码功能

  

2。配置中的密码并不是邮箱的登录密码,填写的是授权码

  

 Django实现发送邮件找回密码功能

  

  

在应用(用户)下的views.py中,进行验证码的生成与发送邮件操作。这里关于基础项目搭建,路由配置不再进行赘述。

  

生成随机验证码方法:

        #随机生成验证码   def random_str (randomlength=8):   str="   识字课=' abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 '   长度=len(字符)- 1   随机=随机()   因为我在范围(randomlength):   str +=字符[随机的。randint(0,长度)   返回str      

发送邮件方法:

        #发送邮件找回密码   def findpwdView(请求):   如果request.method==暗玫健?   email_title="找回密码”   代码=random_str() #随机生成的验证码   请求。会话(“代码”)=代码#将验证码保存到会话   email_body="验证码为:{0}“.format(代码)   send_status=send_mail (email_title email_body,“xxxx@163.com”(“xxxx@qq.com”))   味精="验证码已发送,请查收邮件”   其他:   用户名=request.POST.get(“用户”)   密码=request.POST.get(“密码”)   用户=User.objects.get(用户名=用户名)   代码=request.POST.get(“代码”)#获取传递过来的验证码   如果代码==request.session(“代码”):   user.set_password(密码)   user.save ()   德尔请求。会话(“代码”)#删除会话   味精="密码已重置”   返回渲染(请求,“findpwd.html”,当地人())      

  

以上所述是小编给大家介绍的Django实现发送邮件找回密码功能,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持。
  如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Django实现发送邮件找回密码功能