fix: 优化启动脚本命令

This commit is contained in:
丹尼尔
2026-03-11 11:27:57 +08:00
parent c3e60f037f
commit d3c5b4c27a
2 changed files with 34 additions and 4 deletions

View File

@@ -10,7 +10,7 @@ from urllib.parse import urlencode
import httpx
from fastapi import FastAPI, HTTPException, Query, Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import HTMLResponse
from fastapi.responses import HTMLResponse, Response
from pydantic import BaseModel
try:
@@ -431,7 +431,8 @@ def _slider_form_html(key_val: str, data62_val: str, ticket_val: str) -> str:
k = html.escape(key_val, quote=True)
d = html.escape(data62_val, quote=True)
t = html.escape(ticket_val, quote=True)
script_src = html.escape(f"{SLIDER_VERIFY_BASE_URL.rstrip('/')}/assets/N_jYM_2V.js", quote=True)
# 脚本走本机代理 /auth/slider-assets/...,避免跨域加载 7765 被 CORS 拦截
script_src = "/auth/slider-assets/N_jYM_2V.js"
return f"""<!DOCTYPE html>
<html lang="zh-CN">
<head>
@@ -477,13 +478,31 @@ def _slider_form_html(key_val: str, data62_val: str, ticket_val: str) -> str:
</html>"""
@app.get("/auth/slider-assets/{path:path}")
async def slider_asset_proxy(path: str):
"""代理 7765 的 assets如 N_jYM_2V.js避免跨域加载被 CORS 拦截。"""
url = f"{SLIDER_VERIFY_BASE_URL.rstrip('/')}/assets/{path}"
try:
async with httpx.AsyncClient(timeout=15.0) as client:
resp = await client.get(url)
if resp.status_code >= 400:
raise HTTPException(status_code=resp.status_code, detail=resp.text[:200])
media_type = "application/javascript" if path.endswith(".js") else "application/octet-stream"
return Response(content=resp.content, media_type=media_type)
except HTTPException:
raise
except Exception as e:
logger.warning("Slider asset proxy error: %s", e)
raise HTTPException(status_code=502, detail=str(e)) from e
@app.get("/auth/slider-form", response_class=HTMLResponse)
async def slider_form(
key: str = Query(..., description="Key提交到第三方滑块"),
data62: str = Query("", description="Data62"),
ticket: str = Query(..., description="Original Ticket"),
):
"""本地滑块验证页:与 7765 同 DOM#app、keyInput、data62Input、originalTicketInput加载 7765 的 module 脚本,不用 iframe"""
"""本地滑块验证页:与 7765 同 DOM,脚本经本机代理加载,避免 CORS"""
data62 = _clean_data62(data62)
return HTMLResponse(content=_slider_form_html(key, data62, ticket))