修复中控

This commit is contained in:
dekun
2026-05-30 12:33:20 +08:00
parent a084c272b9
commit 9115523df7
6 changed files with 158 additions and 17 deletions
+7 -2
View File
@@ -582,7 +582,9 @@ def _require_hub_logged_in(request: Request) -> None:
@app.get("/api/instance/open-url")
def api_instance_open_url(request: Request, exchange_id: str, next: str = "/"):
def api_instance_open_url(
request: Request, exchange_id: str, next: str = "/", embed: str = ""
):
"""已登录中控时生成实例 SSO 打开链接(2h 有效、单次使用,复用 HUB_BRIDGE_TOKEN)。"""
_require_hub_logged_in(request)
if not HUB_BRIDGE_TOKEN:
@@ -600,7 +602,10 @@ def api_instance_open_url(request: Request, exchange_id: str, next: str = "/"):
token = mint_hub_sso_token(ex_key, nxt)
if not token:
raise HTTPException(status_code=503, detail="签发 SSO 失败")
q = urlencode({"token": token, "next": nxt})
params = {"token": token, "next": nxt}
if (embed or "").strip().lower() in ("1", "true", "yes", "on"):
params["embed"] = "1"
q = urlencode(params)
return {
"ok": True,
"url": f"{base}/hub-sso?{q}",