fix: seed_iaop_menus.py 适配 FastAPI>=0.13x(HTTPBasicCredentials 绑定 query 参数,登录带 username/password)
This commit is contained in:
@@ -28,6 +28,7 @@ import getpass
|
|||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
import urllib.error
|
import urllib.error
|
||||||
|
import urllib.parse
|
||||||
import urllib.request
|
import urllib.request
|
||||||
|
|
||||||
# ---- iAOP 模块注册表(镜像 web/shared/session.js 的 MODULES,顺序即菜单顺序) ----
|
# ---- iAOP 模块注册表(镜像 web/shared/session.js 的 MODULES,顺序即菜单顺序) ----
|
||||||
@@ -61,7 +62,10 @@ class FbaClient:
|
|||||||
def __init__(self, base: str, username: str, password: str):
|
def __init__(self, base: str, username: str, password: str):
|
||||||
self.base = base.rstrip("/")
|
self.base = base.rstrip("/")
|
||||||
cred = base64.b64encode(f"{username}:{password}".encode()).decode()
|
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}"})
|
headers={"Authorization": f"Basic {cred}"})
|
||||||
self.token = d["data"]["access_token"]
|
self.token = d["data"]["access_token"]
|
||||||
print(f"[ok] 登录成功:{username}({d['data']['user']['username']})")
|
print(f"[ok] 登录成功:{username}({d['data']['user']['username']})")
|
||||||
|
|||||||
Reference in New Issue
Block a user