Browse Source

校验验证码,查看设备密码接口

locky 5 tháng trước cách đây
mục cha
commit
820905def4
2 tập tin đã thay đổi với 76 bổ sung6 xóa
  1. 71 1
      Controller/EquipmentManagerV3.py
  2. 5 5
      Controller/UserController.py

+ 71 - 1
Controller/EquipmentManagerV3.py

@@ -20,6 +20,7 @@ from Controller.UnicomCombo.WXTechController import WXTechControllerView
 from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidChannelSetModel, \
     Device_User, iotdeviceInfoModel, UIDCompanySerialModel, UnicomDeviceInfo, CountryModel, \
     DeviceCloudPhotoInfo, UidPushModel, ExperienceContextModel, LogModel, UserAudioVideoPush, UIDModel
+from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -82,6 +83,10 @@ class EquipmentManagerV3(View):
             return self.save_button_user(request_dict, response)
         elif operation == 'getButtonUser':
             return self.get_button_user(request_dict, response)
+        elif operation == 'verifyCode':
+            return self.verify_code(request_dict, response)
+        elif operation == 'viewDevicePassword':
+            return self.view_device_password(request_dict, response)
         else:
             return response.json(414)
 
@@ -684,6 +689,7 @@ class EquipmentManagerV3(View):
             if not dev_info_qs.exists():
                 return response.json(173)
 
+            view_password = ''
             if deviceData.__contains__('View_Password'):
                 encrypt_pwd = deviceData['View_Password']
                 view_password = self.decode_pwd(deviceData['View_Password'])
@@ -718,6 +724,8 @@ class EquipmentManagerV3(View):
                 if us_qs.exists():
                     if deviceData.__contains__('NickName'):
                         us_qs.update(nickname=nickname)
+                    if view_password:
+                        us_qs.update(pwd=view_password)
                 else:
                     ip = CommonService.get_ip_address(request)
                     ipInfo = CommonService.getIpIpInfo(ip, 'CN')
@@ -733,7 +741,8 @@ class EquipmentManagerV3(View):
                         'channel': ChannelIndex,
                         'nickname': nickname,
                         'device_type': qs[0].Type,
-                        'tb_country': country
+                        'tb_country': country,
+                        'pwd': view_password
                     }
                     UidSetModel.objects.create(**uid_set_create_dict)
                 di_qs = Device_Info.objects.filter(UID=uid)
@@ -1194,6 +1203,7 @@ class EquipmentManagerV3(View):
 
             view_password = self.decode_pwd(encrypt_pwd)
             Device_Info.objects.filter(UID=uid).update(View_Password=view_password)
+            UidSetModel.objects.filter(uid=uid).update(pwd=view_password)
             content = json.loads(json.dumps(request_dict))
             log = {
                 'user_id': 2,
@@ -1313,3 +1323,63 @@ class EquipmentManagerV3(View):
         except Exception as e:
             return response.json(500, repr(e))
 
+    @staticmethod
+    def verify_code(request_dict, response):
+        """
+        校验验证码(查看设备密码)
+        @param request_dict:
+        @param response:
+        @return:
+        """
+        email = request_dict.get('email', None)
+        phone = request_dict.get('phone', None)
+        uid = request_dict.get('uid', None)
+        authcode = request_dict.get('authcode', None)
+        if not any([email, phone]):
+            return response.json(444)
+        if not all([uid, authcode]):
+            return response.json(444)
+        try:
+            authcode = CommonService.decode_data(authcode.strip())
+            if authcode is None:
+                return response.json(444, 'authcode')
+            user_info = email if email is not None else phone
+            redis = RedisObject()
+            redis_key = '{}_{}_GetDevicePassword'.format(user_info, uid)
+            reset_code = redis.get_data(key=redis_key)
+            if reset_code is False:
+                return response.json(90)
+            if authcode != reset_code:
+                return response.json(121)
+            if not redis.del_data(redis_key):
+                return response.json(10, '删除缓存失败')
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+    @staticmethod
+    def view_device_password(request_dict, response):
+        """
+        查看设备密码
+        @param request_dict:
+        @param response:
+        @return:
+        """
+        uid = request_dict.get('uid', None)
+        if not all([uid]):
+            return response.json(444, 'authcode')
+        try:
+            uid_set_qs = UidSetModel.objects.filter(uid=uid).values('pwd')
+            if uid_set_qs.exists():
+                device_password = uid_set_qs[0]['pwd']
+            else:
+                device_info_qs = Device_Info.objects.filter(UID=uid).values('View_Password')
+                if not device_info_qs.exists():
+                    return response.json(173)
+                device_password = device_info_qs[0]['View_Password']
+            res = {
+                'device_password': device_password
+            }
+            return response.json(0, res)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))

+ 5 - 5
Controller/UserController.py

@@ -3443,10 +3443,10 @@ class SingleLoginView(TemplateView):
 
         # 确定缓存key
         if code_type is None:
-            redis_key = email + '_SingleLogin'
+            redis_key = '{}_SingleLogin'.format(email)
             email_type = 'register_code'
         elif code_type == '2':
-            redis_key = email + uid + '_GetDevicePassword'
+            redis_key = '{}_{}_GetDevicePassword'.format(email, uid)
             email_type = 'get_device_password'
         else:
             return response.json(444)
@@ -3494,14 +3494,14 @@ class SingleLoginView(TemplateView):
             user_qs = Device_User.objects.filter(Q(username=phone) | Q(phone=phone))
             if not user_qs.exists():
                 return response.json(102)
-            redis_key = str(phone) + '_SingleLogin'
+            redis_key = '{}_SingleLogin'.format(phone)
             # 短信模板
             temp_msg = 'SMS_151675019' if country_code == '86' else 'SMS_172200051'
         elif code_type == '1':
-            redis_key = str(phone) + '_ChangePhone'
+            redis_key = '{}_ChangePhone'.format(phone)
             temp_msg = 'SMS_151675018' if country_code == '86' else 'SMS_172165867'
         elif code_type == '2':
-            redis_key = str(phone) + uid + '_GetDevicePassword'
+            redis_key = '{}_{}_GetDevicePassword'.format(phone, uid)
             temp_msg = 'SMS_479855154' if country_code == '86' else 'SMS_479785146'
         else:
             return response.json(444)