瀏覽代碼

-fix:修复了外部平台token

LuoChinWen 1 月之前
父節點
當前提交
81100b4d69
共有 3 個文件被更改,包括 12 次插入9 次删除
  1. 1 1
      src/app/config/config.ini
  2. 8 6
      src/app/core/config.py
  3. 3 2
      src/app/services/task_service.py

+ 1 - 1
src/app/config/config.ini

@@ -101,7 +101,7 @@ MINERU_API_BATCH_RESULT=https://mineru.net/api/v4/extract-results/batch/{}
 
 # 外部标注平台配置
 [external_api]
-admin_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzIwMjYwMTI5MTUxMTM4XzkzYjIyMjZkIiwidXNlcm5hbWUiOiJhZG1pbiIsImVtYWlsIjoiYWRtaW5AZXhhbXBsZS5jb20iLCJyb2xlIjoiYWRtaW4iLCJleHAiOjEwNDEwMTg5NjYxLCJpYXQiOjE3NzAyNzYwNjEsInR5cGUiOiJhY2Nlc3MifQ.QW5qwNXop3Id4fVE9rpelTgdyGZUzMralQAFOVj4Mtw
+admin_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzIwMjYwMTI5MTUxMTM4XzkzYjIyMjZkIiwidXNlcm5hbWUiOiJhZG1pbiIsImVtYWlsIjoiYWRtaW5AZXhhbXBsZS5jb20iLCJyb2xlIjoiYWRtaW4iLCJleHAiOjEwNDEyMzM3MDQ3LCJpYXQiOjE3NzI0MjM0NDcsInR5cGUiOiJhY2Nlc3MifQ.k5e_gyb9OvBJnztwYLcaZA80dgVKI_6LmfcfCNFTEi8
 project_api_url=http://192.168.92.61:9003/api/external/projects
 download_base_url=http://192.168.92.61:9003
 

+ 8 - 6
src/app/core/config.py

@@ -43,14 +43,16 @@ class ConfigHandler:
             # 处理布尔值
             if value.lower() in ('true', 'false'):
                 return value.lower() == 'true'
-            # 处理数字
+            # 处理数字 (纯数字才转换)
             if value.isdigit():
                 return int(value)
-            # 处理浮点数
-            try:
-                return float(value)
-            except ValueError:
-                pass
+            # 处理浮点数 (只有简单的数字格式才转换,避免误判JWT token)
+            # JWT token格式: xxx.yyy.zzz (包含字母),不应该被转换为float
+            if '.' in value and not any(c.isalpha() for c in value):
+                try:
+                    return float(value)
+                except ValueError:
+                    pass
             return value
         except Exception:
             return default

+ 3 - 2
src/app/services/task_service.py

@@ -906,11 +906,12 @@ class TaskService:
             api_url = f"{api_base_url}/init"
             token = config_handler.get('external_api', 'admin_token', '')
             
-            # 清理token值:去除可能的引号和空格
+            # 确保token是字符串并去除首尾空格
             if token:
-                token = token.strip().strip('"').strip("'")
+                token = str(token).strip()
             
             if not token:
+                logger.error("外部平台Token未配置或为空")
                 return False, "外部平台Token未配置"
 
             # 3. 发送请求 (不持有数据库连接)