ソースを参照

传感器设备获取设备id增加时间戳token校验

locky 3 年 前
コミット
f12a85ce66
1 ファイル変更42 行追加2 行削除
  1. 42 2
      SensorGateway/SensorGatewayController.py

+ 42 - 2
SensorGateway/SensorGatewayController.py

@@ -11,6 +11,7 @@ import string
 from django.views import View
 
 from Object.ResponseObject import ResponseObject
+from Service.CommonService import CommonService
 
 
 class SensorGateway(View):
@@ -27,14 +28,53 @@ class SensorGateway(View):
     def validation(self, request_dict, request, operation):
         response = ResponseObject()
         if operation == 'getSensorId':  # 返回唯一标识id给设备
-            return self.getSensorId(response)
+            return self.getSensorId(request_dict, response)
+        elif operation == 'registerToAWSIoTCore':  # 注册到AWS IoT Core
+            return self.registerToAWSIoTCore(request_dict, response)
         else:
             return response.json(404)
 
     @staticmethod
-    def getSensorId(response):
+    def getSensorId(request_dict, response):
+        """
+        传感器设备获取设备id
+        @param request_dict: 请求参数
+        @time_stamp: 时间戳
+        @time_stamp_token: 时间戳token
+        @param response: 响应对象
+        @return: sensorId 六位的随机id
+        """
+        time_stamp = request_dict.get('time_stamp', None)
+        time_stamp_token = request_dict.get('time_stamp_token', None)
+
+        if not all([time_stamp, time_stamp_token]):
+            return response.json(444, {'param': 'time_stamp, time_stamp_token'})
         try:
+            # 时间戳token校验
+            if not CommonService.check_time_stamp_token(time_stamp_token, time_stamp):
+                return response.json(13)
+
             sensorId = ''.join(random.sample(string.ascii_letters + string.digits, 6))
             return response.json(0, {'sensorId': sensorId})
         except Exception as e:
             return response.json(500, repr(e))
+
+    @staticmethod
+    def registerToAWSIoTCore(request_dict, response):
+        """
+        传感器设备注册到AWS IoT Core
+        @param request_dict: 请求参数
+        @request_dict sensor_id: 设备id
+        @param response: 响应对象
+        @return: res iot证书等数据
+        """
+        sensor_id = request_dict.get('sensor_id', None)
+        time_stamp = request_dict.get('time_stamp', None)
+        time_stamp_token = request_dict.get('time_stamp_token', None)
+
+        if not all([sensor_id, time_stamp, time_stamp_token]):
+            return response.json(444, {'param': 'sensor_id, time_stamp, time_stamp_token'})
+        try:
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, repr(e))