[py][mx]django通过邮箱找回密码
2018-02-03 10:45
477 查看
忘记密码处理流程
注意: 这个文章里的找回密码页面截取有问题. 找回密码页应该是让输入邮箱直接上代码
class ActiveView(View): # 主要功能是修改user_profile里的is_active字段为1 def get(self, request, active_code): all_reocrds = EmailVerifyRecord.objects.filter(code=active_code) if all_reocrds: for record in all_reocrds: email = record.email user = UserProfile.objects.get(email=email) user.is_active = True user.save() else: # 如果激活链接不存在,则返回激活失败 return render(request, "active_faild.html") return render(request, 'login.html') class ForgetPwdView(View): def get(self, request): forget_form = ForgetPwdForm() # 返回验证码form return render(request, 'forget_pwd.html', {'forget_form': forget_form}) def post(self, request): forget_form = ForgetPwdForm(request.POST) if forget_form.is_valid(): # 验证email是否有效 email = request.POST.get('email', '') if UserProfile.objects.get(email=email): # 判断用户是否存在,然后发邮件 send_register_email(email, "forget") return HttpResponse("重置密码链接已发送到您的邮箱,请查收后点击重置.") else: return render(request, 'forget_pwd.html', {'msg': '用户不存在', 'forget_form': forget_form}) class ResetPwdView(View): def get(self, request, active_code): all_reocrds = EmailVerifyRecord.objects.filter(code=active_code) if all_reocrds: # 如果链接有效 for record in all_reocrds: email = record.email # 得到email, emailsendrecord表中有对应的 return render(request, 'reset_password.html', {'email': email}) # 将email带回, post到这个view: modify_pwd else: return HttpResponse("链接已失效...") # ResetPwdView的post独立到ModifyPwdView里, 因为ResetPwdView post地址不好获取code class ModifyPwdView(View): def post(self, request): modify_form = ModifyPwdForm(request.POST) if modify_form.is_valid(): pwd1 = request.POST.get('password1', '') pwd2 = request.POST.get('password2', '') email = request.POST.get('email', '')#取出email,定位哪个用户 if pwd1 != pwd2: # 如果密码不一致, 则返回 return render(request, 'reset_password.html', {'msg': '密码不一致', 'email': email}) user = UserProfile.objects.get(email=email) user.password = make_password(pwd2) user.save() return render(request, 'login.html') else: email = request.POST.get('email', '') return render(request, 'reset_password.html', {'email': email, 'modify_form': modify_form})
处理逻辑
相关文章推荐
- django 开发忘记密码通过邮箱找回功能示例
- 通过邮箱找回密码
- php通过邮箱找回密码
- jsp网页开发中,通过注册邮箱找回密码,并限制连接的有效时间
- php通过邮箱找回密码
- jsp网页开发中,通过注册邮箱找回密码,并限制连接的有效时间
- JAVA实现通过绑定邮箱找回密码功能
- JAVA实现通过绑定邮箱找回密码功能
- 账号通过邮箱找回密码功能设计
- 通过邮箱找回密码的实现
- java WEB开发 找回密码 如何通过注册时候的邮箱找回(修改)密码
- JAVA实现通过绑定邮箱找回密码功能
- [py][mx]django邮箱注册的验证码部分-django-simple-captcha库使用
- 在yii 框架下 使用phpmailer 通过邮箱验证找回密码功能
- Asp.NEt邮箱验证修改密码通过邮箱找回密码功能
- C# 通过发送邮箱找回密码
- 通过邮箱发取链接找回密码
- C# 通过发送邮箱找回密码
- 通过邮箱找回密码
- 用户找回密码功能JS验证邮箱通过点击下一步隐藏邮箱输入框并修改下一步按钮的ID