Pārlūkot izejas kodu

修改返回用户信息注册时间

linhaohong 11 mēneši atpakaļ
vecāks
revīzija
73dd6a52ef

+ 2 - 2
Controller/CampaignController/AdDepartmentController.py

@@ -37,8 +37,8 @@ class AdDepartmentView(View):
         timestamp = request_dict.get('timestamp', None)
 
         # 判断时间戳是否存在
-        if not timestamp:
-            return JsonResponse(status=400, data={"error": "缺少关键参数timestamp"})
+        if not all([provided_signature, timestamp]):
+            return JsonResponse(status=400, data={"error": "缺少关键参数"})
 
         # 生成用于签名的数据
         data = f"phone={phone}&email={email}&timestamp={timestamp}"

+ 5 - 2
Object/HMACValidatorObject.py

@@ -42,14 +42,17 @@ class HMACValidatorObject:
     def validate_timestamp(timestamp, tolerance_seconds=300):
         """
         校验时间戳是否在允许的范围内。
-        :param timestamp: 时间戳字符串 (ISO格式)
+        :param timestamp: Unix时间戳 (秒级)
         :param tolerance_seconds: 容许的时间误差,单位为秒 (默认5分钟)
         :return: 时间戳是否在有效范围内
         """
         try:
-            request_time = datetime.fromisoformat(timestamp)
+            # 将Unix时间戳转为datetime对象
+            request_time = datetime.utcfromtimestamp(int(timestamp))
             current_time = datetime.utcnow()
+            # 计算时间差(秒级)
             delta = (current_time - request_time).total_seconds()
+            # 判断时间差是否在容许范围内
             return abs(delta) <= tolerance_seconds
         except ValueError:
             return False