中控 Bridge Token 为空时自动生成,Origin 改为选填说明。
打开 env 配置或首次部署即可写入 Token,便于复制到中控登记。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Vendored
+9
-2
@@ -64,12 +64,12 @@ _SHARED_SECTIONS: list[dict[str, Any]] = [
|
||||
(
|
||||
"HUB_BRIDGE_TOKEN",
|
||||
"中控 Bridge Token",
|
||||
"与 crypto_okx_hub「添加实例」里的 Bridge Token 一致;可自拟长随机串,两边填相同值;留空则中控无法拉持仓",
|
||||
"首次打开本页自动生成;复制到 crypto_okx_hub「添加实例」即可;也可手动改后保存",
|
||||
),
|
||||
(
|
||||
"HUB_EMBED_FRAME_ANCESTORS",
|
||||
"允许嵌入的中控 Origin",
|
||||
"空格分隔,例: http://中控IP:5100 https://hub.example.com;调试可填 *",
|
||||
"选填。一般可留空;仅当中控 iframe 打不开时再填中控地址(空格分隔),或调试填 *",
|
||||
),
|
||||
],
|
||||
},
|
||||
@@ -279,6 +279,13 @@ def build_env_ui_payload(
|
||||
example_path: str,
|
||||
env_path: str,
|
||||
) -> list[dict[str, Any]]:
|
||||
# 首次打开 env 配置时若 Token 为空则自动生成,便于复制到中控
|
||||
try:
|
||||
from lib.hub.hub_bridge_auth import ensure_hub_bridge_token
|
||||
|
||||
ensure_hub_bridge_token(env_path)
|
||||
except Exception:
|
||||
pass
|
||||
schema = _schema_field_map(example_path)
|
||||
env_lines = read_env_lines(env_path)
|
||||
values = env_get_all(env_lines)
|
||||
|
||||
@@ -4,6 +4,7 @@ from __future__ import annotations
|
||||
import hashlib
|
||||
import hmac
|
||||
import os
|
||||
import secrets
|
||||
import time
|
||||
from typing import Optional
|
||||
from urllib.parse import urlencode
|
||||
@@ -94,3 +95,28 @@ def frame_ancestors_header_value() -> Optional[str]:
|
||||
return "*"
|
||||
parts = [p.strip() for p in raw.split() if p.strip()]
|
||||
return " ".join(parts) if parts else None
|
||||
|
||||
|
||||
def ensure_hub_bridge_token(env_path: str) -> str:
|
||||
"""若 .env 中 HUB_BRIDGE_TOKEN 为空则生成并写入;返回当前 token."""
|
||||
from lib.env.env_file_lib import apply_env_updates, env_get, read_env_lines
|
||||
|
||||
path = (env_path or "").strip()
|
||||
if not path or not os.path.isfile(path):
|
||||
existing = hub_bridge_token()
|
||||
if existing:
|
||||
return existing
|
||||
token = secrets.token_urlsafe(32)
|
||||
os.environ["HUB_BRIDGE_TOKEN"] = token
|
||||
return token
|
||||
|
||||
lines = read_env_lines(path)
|
||||
cur = (env_get(lines, "HUB_BRIDGE_TOKEN") or "").strip()
|
||||
if cur:
|
||||
os.environ["HUB_BRIDGE_TOKEN"] = cur
|
||||
return cur
|
||||
|
||||
token = secrets.token_urlsafe(32)
|
||||
apply_env_updates(path, {"HUB_BRIDGE_TOKEN": token})
|
||||
os.environ["HUB_BRIDGE_TOKEN"] = token
|
||||
return token
|
||||
|
||||
Reference in New Issue
Block a user