Sfoglia il codice sorgente

清除UID 改为时间戳验证

chenshibin 4 anni fa
parent
commit
dc06c2a611
1 ha cambiato i file con 15 aggiunte e 4 eliminazioni
  1. 15 4
      Controller/SerialNumberController.py

+ 15 - 4
Controller/SerialNumberController.py

@@ -42,6 +42,8 @@ class SerialNumberView(View):
             return self.do_get_serial_number(request_dict, response)
         elif operation == 'attachUID':
             return self.do_attach_uid(request_dict, response, request)
+        elif operation == 'detachUID':
+            return self.do_detach_uid(request_dict, response)
         else:
             if token.code != 0:
                 return response.json(token.code)
@@ -52,8 +54,6 @@ class SerialNumberView(View):
                 return self.do_list(token.userID, request_dict, response)
             elif operation == 'update':
                 return self.do_update(token.userID, request_dict, response)
-            elif operation == 'detachUID':
-                return self.do_detach_uid(token.userID, request_dict, response)
             else:
                 return response.json(404)
 
@@ -336,10 +336,21 @@ class SerialNumberView(View):
         else:
             return response.json(444)
 
-    def do_detach_uid(self, userID, request_dict, response):
+    def do_detach_uid(self, request_dict, response):
         serial_number = request_dict.get('serial_number', None)
+        token = request_dict.get('token', None)
+        time_stamp = request_dict.get('time_stamp', None)
+
+        if token and time_stamp and serial_number and len(serial_number) == 9:
+            token = int(CommonService.decode_data(token))
+            time_stamp = int(time_stamp)
+
+            now_time = int(time.time())
+            distance = now_time - time_stamp
+
+            if token != time_stamp or distance > 60000 or distance < -60000:  # 为了全球化时间控制在一天内
+                return response.json(404)
 
-        if serial_number:
             serial = serial_number[0:6]
 
             uid_serial_qs = UIDCompanySerialModel.objects.filter(company_serial__serial_number__serial_number=serial)