feat: 支持x-login-as三参数认证、auth_url跟随base_url
- 认证请求增加x-login-as header支持连接账户 - auth_url根据base_url动态构建,不再硬编码生产环境 - 默认Base URL改为demo环境 - 设置页面新增Account ID字段,带tooltip说明
This commit is contained in:
@@ -43,13 +43,14 @@ def get_client(db: Session) -> ProxiedAirwallexClient:
|
||||
|
||||
client_id = _get_setting(db, "airwallex_client_id")
|
||||
api_key = _get_setting(db, "airwallex_api_key")
|
||||
base_url = _get_setting(db, "airwallex_base_url", "https://api.airwallex.com/")
|
||||
base_url = _get_setting(db, "airwallex_base_url", "https://api-demo.airwallex.com/")
|
||||
login_as = _get_setting(db, "airwallex_login_as")
|
||||
proxy_url = _build_proxy_url(db)
|
||||
|
||||
if not client_id or not api_key:
|
||||
raise HTTPException(status_code=400, detail="Airwallex 凭证未配置,请在系统设置中填写 Client ID 和 API Key")
|
||||
|
||||
config_hash = f"{client_id}:{api_key}:{base_url}:{proxy_url}"
|
||||
config_hash = f"{client_id}:{api_key}:{base_url}:{login_as}:{proxy_url}"
|
||||
if _client_instance and _client_config_hash == config_hash:
|
||||
return _client_instance
|
||||
|
||||
@@ -60,11 +61,16 @@ def get_client(db: Session) -> ProxiedAirwallexClient:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# auth_url must match base_url domain
|
||||
auth_url = base_url.rstrip("/") + "/api/v1/authentication/login"
|
||||
|
||||
_client_instance = ProxiedAirwallexClient(
|
||||
proxy_url=proxy_url,
|
||||
login_as=login_as or None,
|
||||
client_id=client_id,
|
||||
api_key=api_key,
|
||||
base_url=base_url,
|
||||
auth_url=auth_url,
|
||||
)
|
||||
_client_config_hash = config_hash
|
||||
return _client_instance
|
||||
|
||||
Reference in New Issue
Block a user