Bläddra i källkod

Merge branch 'master' of http://39.104.94.153:3000/yf_zd/second

yf_zd 5 år sedan
förälder
incheckning
9743259eec
2 ändrade filer med 68 tillägg och 2 borttagningar
  1. 3 2
      apps/Home/urls.py
  2. 65 0
      apps/Home/views.py

+ 3 - 2
apps/Home/urls.py

@@ -1,6 +1,6 @@
 from django.conf.urls import url
 from django.views.static import serve
-from apps.Home.views import Home_Test,Home,Login_View,Login2_View,ForgetPaw_View,register_View,Modify_Head ,User_Img,User_News,User_Land,User_Check,Prove_Code
+from apps.Home.views import Home_Test,Home,Login_View,Login2_View,ForgetPaw_View,register_View,Modify_Head ,User_Img,User_News,User_Land,User_Check,Prove_Code,Reset_Password
 from . import views
 
 app_name = 'Home'
@@ -20,6 +20,7 @@ urlpatterns = [
     url(r'^user_news$',User_News.as_view(), name='user_news'),#新建用户
     url(r'^user_land$',User_Land.as_view(), name='user_land'),#用户登陆
     url(r'^user_check$',User_Check.as_view(), name='user_check'),#用户登陆
-    url(r'^prove_code$',Prove_Code.as_view(), name='prove_code'),#用户登陆
+    url(r'^prove_code$',Prove_Code.as_view(), name='prove_code'),#注册账号
+    url(r'^reset_password$',Reset_Password.as_view(), name='reset_password'),#重置密码
     url(r'^logout$', views.logout, name='logout'),
 ]

+ 65 - 0
apps/Home/views.py

@@ -439,3 +439,68 @@ class Prove_Code(ListView):
                     data = 2
         return HttpResponse(data)
 
+
+
+#重置密码
+class Reset_Password(ListView):
+    def post(self, request):
+        # phone = json.loads(request.body.decode())
+        num = ""
+        for i in range(6):
+            ch = chr(random.randrange(ord('0'), ord('9') + 1))
+            num += ch
+        mobile = request.POST.get("mobile")
+        pass_word1 = request.POST.get("password")
+        pass_word2 = request.POST.get("password2")
+        code = request.POST.get("code")
+        ret = request.POST.get("ret")
+
+        if ret == "see":
+            mobile_pat = re.compile('^(13\d|14[5|7]|15\d|166|17\d|18\d)\d{8}$')
+            res = re.search(mobile_pat, mobile)
+            if res:
+                #校验手机号
+                if MyUser.objects.filter(username=mobile).exists():
+                    template_id = 496444  # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
+                    # # 签名
+                    ssender = SmsSingleSender(appid, appkey)
+                    params = [num, "1"]
+                    #发送短信验证码
+                    result = ssender.send_with_param(86, mobile,
+                                                     template_id, params, sign=sms_sign, extend="", ext="")
+                    if result["result"] == 0:
+                        data = 0
+                        #把验证码存到session中,以便后续校验
+                        request.session["code"] = num
+                    else:
+                        data = 2
+                else:
+                    data = 4
+            else:
+                data = 3
+        elif ret == "land":
+            try:
+                #如果在60内没有输入正确的验证码会直接删除,而这个时候就获取不到code 了
+                num = request.session.get('code')
+            except Exception as e:
+                data = 1
+                return HttpResponse(data)
+            if MyUser.objects.filter(username=mobile).exists():
+                if pass_word1 == pass_word2:
+                    if num == code:
+                        req = MyUser.objects.get(username=mobile)
+                        #密码进行加密
+                        req.set_password(pass_word1)
+                        # pass_word3 = make_password(pass_word1)
+                        # req.password = pass_word3
+                        req.save()
+                        # 验证码存在session中,在用户注册成功后要删除设置的验证码,
+                        del request.session['code']
+                        data = 0
+                    else:
+                        data = 1
+                else:
+                    data = 2
+            else:
+                data = 4
+        return HttpResponse(data)