Django 邮箱找回密码!!!!!!!!!!!!!!!!

 1.大概流程。

@首先在完善登陆页面,增加忘记密码的链接。

@为了账户安全,需要对操作者进行验证,向邮箱发随机数验证!

@在重置验证码页面,验证验证码是否匹配(验证成功跳转至更改密码也页面)。

@ 重置密码成功后重新进入到登录页面。

---------------------------------------------------------------------------------------------------------------------------------------------------

配置服务器邮箱setting.py

 

EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.163.com' 
EMAIL_PORT = 465
EMAIL_HOST_USER = 'xxx@163.com' # 帐号
EMAIL_HOST_PASSWORD = 'xxx'  # 密码   切记:这里不是邮箱密码  而是授权码什莫是授权码?? 接着往下看就知道了
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

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


另外在服务器邮箱中有两处配置:(当打开这两个配置的时候你大概就能看到授权码了ps:示例是qq邮箱 其他邮箱因情况而定 )




如下是生成随机数和发送邮件的方法!
#随机生成验证码
def random_str(randomlength=8):
    str = ''
    chars = 'abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
    length = len(chars) - 1
    random = Random()
    for i in range(randomlength):
        str += chars[random.randint(0, length)]
    return str
#发送邮件找回密码 
def findpwdView(request):
    if request.method=="GET":
        email_title = "找回密码"
        code=random_str()#随机生成的验证码
        request.session["code"]=code #将验证码保存到session
        email_body = "验证码为:{0}".format(code)
        send_status = send_mail(email_title, email_body,"xxxx@163.com",["xxxx@qq.com",])
        msg="验证码已发送,请查收邮件"
    else:
        username=request.POST.get("username")
        password=request.POST.get("password")
        user=User.objects.get(username=username)
        code=request.POST.get("code") #获取传递过来的验证码
        if code==request.session["code"]:
            user.set_password(password)
            user.save()
            del request.session["code"] #删除session
            msg="密码已重置"
    return render(request,"findpwd.html",locals())

 

 

 

 

 

 

 

原文出自:https://segmentfault.com/a/1190000020044479?utm_source=tag-newest

 

转载于:https://www.cnblogs.com/yongqi-wang/p/dewfdsafdsdw.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值