fix(local-agent): start-agent.sh 補設 VISIONA_CLOUD_ORIGINS(ADR-019 localhost 直連 CORS)
start-agent.sh 漏設 VISIONA_CLOUD_ORIGINS → local-agent CORS 白名單為空 →
影片分頁從瀏覽器打 local-agent 的 preflight 被 403 → 前端判 LOCAL_AGENT_NOT_FOUND
(顯示「需同一台電腦操作」)。
依 MODE 補設雙入口白名單(public: 公網 https + 內網 http;internal 同);
用 ${VISIONA_CLOUD_ORIGINS:-預設} 尊重外部覆寫;啟動 log 印出白名單。
origin 字串與 middleware.go 完整精確比對相容。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d0ab479a7f
commit
145ed8e960
@ -35,12 +35,18 @@ case "$MODE" in
|
||||
CLOUD_API_URL="https://$HOST"
|
||||
RELAY_URL="wss://$HOST/tunnel/connect"
|
||||
WS_SCHEME="https"
|
||||
# ADR-019 §2.5 CORS 白名單(stage 雙入口):影片分頁 localhost 直連時,
|
||||
# 瀏覽器可能從公網 HTTPS 或內網純 HTTP 任一入口開啟,兩者都要放行。
|
||||
CLOUD_ORIGINS="https://stage-9527.innovedus.com:9527,http://192.168.0.130:9527"
|
||||
;;
|
||||
internal)
|
||||
HOST="192.168.0.130:9527"
|
||||
CLOUD_API_URL="http://$HOST"
|
||||
RELAY_URL="ws://$HOST/tunnel/connect"
|
||||
WS_SCHEME="http"
|
||||
# ADR-019 §2.5 CORS 白名單:internal 走內網純 HTTP 入口;一併帶公網入口
|
||||
# 以便同一台 agent 兩種路徑都能開影片分頁(多帶白名單不會放寬安全性)。
|
||||
CLOUD_ORIGINS="http://192.168.0.130:9527,https://stage-9527.innovedus.com:9527"
|
||||
;;
|
||||
*)
|
||||
echo "用法:$0 [public|internal]" >&2
|
||||
@ -105,6 +111,16 @@ echo ""
|
||||
export VISIONA_CLOUD_API_URL="$CLOUD_API_URL"
|
||||
export VISIONA_RELAY_URL="$RELAY_URL"
|
||||
|
||||
# ADR-019 localhost 直連的 CORS 白名單(server 讀 middleware.go:46 os.Getenv)。
|
||||
# 漏設會導致影片分頁的 preflight(OPTIONS)被 local-agent 回 403 → 前端 port 探測
|
||||
# 掃不到同機 agent → 影片分頁顯示 LOCAL_AGENT_NOT_FOUND(「需在同一台電腦操作」)。
|
||||
# 格式:逗號分隔的完整 origin(scheme+host+port 一字不差、結尾無斜線),與
|
||||
# middleware.go 的「完整 origin 精確比對」相容。
|
||||
# 尊重外部覆寫(與上方優先級 env > 內建預設一致):若使用者已設則沿用其值。
|
||||
export VISIONA_CLOUD_ORIGINS="${VISIONA_CLOUD_ORIGINS:-$CLOUD_ORIGINS}"
|
||||
echo " CORS 白名單(VISIONA_CLOUD_ORIGINS):$VISIONA_CLOUD_ORIGINS"
|
||||
echo ""
|
||||
|
||||
# public 模式:stage 用自簽憑證,agent 需明確 opt-in 跳過 TLS 驗證
|
||||
# (pairing exchange + tunnel WSS + 設定頁「測試連線」三條路徑共用此開關),
|
||||
# 否則全部 x509 失敗,與本腳本的 demo 目的自相矛盾。
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user