Explorar el Código

Merge branch 'dev' of http://192.168.136.45:3000/SERVER/AnsjerServer into dev

pengzhibo168 hace 5 años
padre
commit
13d2ce03aa
Se han modificado 1 ficheros con 71 adiciones y 61 borrados
  1. 71 61
      Controller/UserController.py

+ 71 - 61
Controller/UserController.py

@@ -2386,7 +2386,7 @@ class generatePictureCodeView(TemplateView):
             random_low_alpha = chr(random.randint(97, 122))
             random_high_alpha = chr(random.randint(65, 90))
             random_char = random.choice([random_num, random_low_alpha, random_high_alpha])
-            draw.text((i * 50 + 20, 5), random_char, 'white', kumo_font)
+            draw.text((i * 50 + 20, -3), random_char, 'white', kumo_font)
 
             # 保存验证码字符串
             valid_code_str += random_char
@@ -2397,13 +2397,14 @@ class generatePictureCodeView(TemplateView):
         # 噪点噪线
         width = 260
         height = 34
-        for i in range(5):
+        for i in range(10):
             x1 = random.randint(0, width)
             x2 = random.randint(0, width)
             y1 = random.randint(0, height)
             y2 = random.randint(0, height)
             draw.line((x1, y1, x2, y2), fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
-        for i in range(5):
+
+        for i in range(10):
             draw.point([random.randint(0, width), random.randint(0, height)],
                        fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)))
             x = random.randint(0, width)
@@ -2420,10 +2421,12 @@ class generatePictureCodeView(TemplateView):
     # 生成验证码方法
     def validates(self, request_dict):
         # 页面传过来的uuid
-        # id = request.GET.get('id','')
-        id = request_dict.get('id', '')
+        imageCodeId = request_dict.get('imageCodeId', '')
+        response = ResponseObject()
+        if not imageCodeId:
+            return response.json(444)
         # 存入redis的key
-        image_code_id = "image_code_%s" % id
+        image_code_id = "image_code_%s" % imageCodeId
         """
         基于PIL模块动态生成响应状态码图片
         :param request:
@@ -2431,7 +2434,7 @@ class generatePictureCodeView(TemplateView):
         """
         # 图片data,验证码
         data, valid_code_str = self.get_valid_code_img(request_dict)
-        if id:
+        if imageCodeId:
             redisObj = RedisObject(db=6)
             # 单条维护
             redisObj.set_data(key=image_code_id, val=valid_code_str, expire=120)
@@ -2447,7 +2450,6 @@ class Image_Code_RegisterView(TemplateView):
         return super(Image_Code_RegisterView, self).dispatch(*args, **kwargs)
 
     def post(self, request, *args, **kwargs):
-        print("post进来了吗")
         request.encoding = 'utf-8'
         request_dict = request.POST
         return self.validates(request_dict)
@@ -2460,18 +2462,17 @@ class Image_Code_RegisterView(TemplateView):
     #检测验证码,并注册
     def validates(self,request_dict):
         print("__________request_dict:%s" % request_dict)
-        phone = request_dict.get('phone',None)
-        #注释
-        #username = request_dict.get('userName',None)
         userEmail = request_dict.get('userEmail',None)
         password = request_dict.get('userPwd',None)
-        language = request_dict.get('language',None)
-
+        lang = request_dict.get('lang',None)
         #前端传进来的uuid
         imageCodeId = request_dict.get('imageCodeId',None)
         # 页面输入的验证码
-        valid_code = request_dict.get('id_v_code',None)
-        response = ResponseObject(language)
+        response = ResponseObject(lang)
+        valid_code = request_dict.get('id_v_code', None)
+
+        if not all([userEmail, password, lang, imageCodeId, valid_code]):
+            return response.json(444)
         try:
             for i in range(1, 4):
                 if i == 1:
@@ -2486,54 +2487,63 @@ class Image_Code_RegisterView(TemplateView):
                     password = base64.b64decode(password)
                     password = password.decode('utf-8')
                     password = password[3:-3]
-            # print(password)
         except Exception as e:
             return response.json(111)
-        else:
-            if not userEmail:
-                return response.json(105)
-            if not password:
-                return response.json(109)
-            if not phone:
-                return response.json(100)
-            userEmail = userEmail.strip()
-            password = password.strip()
-            # 注释
-            if userEmail:
-                emailValid = Device_User.objects.filter(userEmail=userEmail)
-                if emailValid:
-                    return response.json(103)
-            if phone:
-                phoneValid = Device_User.objects.filter(phone=phone)
-                if phoneValid:
-                    return response.json(101)
-            #根据uuid拼接的key
-            image_code_key = "image_code_%s" %imageCodeId
-            #判断验证码是否过期
-            if image_code_key is None:
-                return response.json(120)
-            redisObj = RedisObject(db=6)
-            #redis里面的验证码
-            redis_image_code = redisObj.get_data(key=image_code_key)
-            #验证用户输入的验证码和redis中的验证码
-            if valid_code.lower()!=redis_image_code.lower():
-                return response.json(121)
-            # 删除redis中的图片验证码,防止用户使用同一个图片验证码验证多次
-            redisObj.del_data(key=image_code_key)
-            username = phone
-            # #存用户名和密码
-            create_data = {
-                "phone":phone,
-                "username": username,
-                "NickName": username,
-                "userEmail": userEmail,
-                "password": make_password(password),
-                "userID": CommonService.getUserID(μs=False, setOTAID=True),
-                "is_active": True,
-                "user_isValid": True,
-            }
-            users = Device_User.objects.create(**create_data)
-            return response.json(0)
+        try:
+            for i in range(1, 4):
+                if i == 1:
+                    valid_code = base64.b64decode(valid_code)
+                    valid_code = valid_code.decode('utf-8')
+                    valid_code = valid_code[1:-1]
+                if i == 2:
+                    valid_code = base64.b64decode(valid_code)
+                    valid_code = valid_code.decode('utf-8')
+                    valid_code = valid_code[2:-2]
+                if i == 3:
+                    valid_code = base64.b64decode(valid_code)
+                    valid_code = valid_code.decode('utf-8')
+                    valid_code = valid_code[3:-3]
+            print(valid_code)
+        except Exception as e:
+            return response.json(121)
+        if not userEmail:
+            return response.json(105)
+        if not password:
+            return response.json(109)
+        userEmail = userEmail.strip()
+        password = password.strip()
+        # 注释
+        if userEmail:
+            emailValid = Device_User.objects.filter(userEmail=userEmail)
+            if emailValid:
+                return response.json(103)
+        #根据uuid拼接的key
+        image_code_key = "image_code_%s" %imageCodeId
+        #判断验证码是否过期
+        if image_code_key is None:
+            return response.json(120)
+        redisObj = RedisObject(db=6)
+        #redis里面的验证码
+        redis_image_code = redisObj.get_data(key=image_code_key)
+        #验证用户输入的验证码和redis中的验证码
+        if valid_code.lower()!=redis_image_code.lower():
+            return response.json(121)
+        # 删除redis中的图片验证码,防止用户使用同一个图片验证码验证多次
+        redisObj.del_data(key=image_code_key)
+        username = userEmail
+        # #存用户名和密码
+        create_data = {
+            "username": username,
+            "NickName": username,
+            "userEmail": userEmail,
+            "password": make_password(password),
+            "userID": CommonService.getUserID(μs=False, setOTAID=True),
+            "is_active": True,
+            "user_isValid": True,
+        }
+        print("bbbb")
+        users = Device_User.objects.create(**create_data)
+        return response.json(0)