fix: seed_iaop_menus.py 适配 FastAPI>=0.13x(HTTPBasicCredentials 绑定 query 参数,登录带 username/password)

This commit is contained in:
2026-08-06 10:31:25 +08:00
parent 4ea81cea91
commit 209427f685
+5 -1
View File
@@ -28,6 +28,7 @@ import getpass
import json
import sys
import urllib.error
import urllib.parse
import urllib.request
# ---- iAOP 模块注册表(镜像 web/shared/session.js 的 MODULES,顺序即菜单顺序) ----
@@ -61,7 +62,10 @@ class FbaClient:
def __init__(self, base: str, username: str, password: str):
self.base = base.rstrip("/")
cred = base64.b64encode(f"{username}:{password}".encode()).decode()
d = self._req("POST", "/auth/login/swagger",
# FastAPI >= 0.13x 将 HTTPBasicCredentials 绑定到 query 参数,
# 登录需带 ?username=&password=(Basic 头仍保留,双通道兼容)。
q = urllib.parse.urlencode({"username": username, "password": password})
d = self._req("POST", f"/auth/login/swagger?{q}",
headers={"Authorization": f"Basic {cred}"})
self.token = d["data"]["access_token"]
print(f"[ok] 登录成功:{username}({d['data']['user']['username']})")