diff --git a/apps/routers/auth.py b/apps/routers/auth.py index 0de51f601d87c3362a27d74239a973e9b1ca6c57..cb611d50b0cb7cea3ea05b2d36e24560dcccbdae 100644 --- a/apps/routers/auth.py +++ b/apps/routers/auth.py @@ -122,7 +122,14 @@ async def oidc_login(request: Request, code: str = None, error: str = None, erro user_info = await oidc_provider.get_oidc_user(token["access_token"]) user_sub: str | None = user_info.get("user_sub", None) - user_name: str = user_info.get("user_name", "") + if Config().get_config().login.provider == "authelia": + user_name: str = user_info.get("user_name", "") + elif Config().get_config().login.provider == "authhub": + user_name: str = user_sub + else: + user_name: str = user_info.get("username", "") + if not user_name: + user_name = user_sub except Exception as e: logger.exception("User login failed") reason = "无法验证登录信息,请重试。" diff --git a/apps/schemas/config.py b/apps/schemas/config.py index 4ca82b88f3c49293b32b29e03138ff576439357e..c9b0c507d43971b20345b2a9c595c528e13ac52a 100644 --- a/apps/schemas/config.py +++ b/apps/schemas/config.py @@ -19,7 +19,7 @@ class AdminConfig(BaseModel): enable: bool = Field(description="是否启用管理员", default=False) user_sub: str = Field(description="管理员用户标识", default="openEuler") user_name: str = Field(description="管理员用户名", default="openEuler") - + class DeployConfig(BaseModel): """部署配置""" @@ -57,8 +57,10 @@ class FixedUserConfig(BaseModel): class LoginConfig(BaseModel): """OIDC配置""" - provider: Literal["authhub", "openeuler", "authelia", "disable"] = Field(description="OIDC Provider", default="authhub") - settings: OIDCConfig | AutheliaConfig | FixedUserConfig = Field(description="OIDC 配置") + provider: Literal["authhub", "openeuler", "authelia", "disable"] = Field( + description="OIDC Provider", default="authhub") + settings: OIDCConfig | AutheliaConfig | FixedUserConfig = Field( + description="OIDC 配置") class EmbeddingConfig(BaseModel): @@ -132,7 +134,8 @@ class LLMConfig(BaseModel): key: str = Field(description="LLM API密钥") endpoint: str = Field(description="LLM API URL地址") model: str = Field(description="LLM API 模型名") - max_tokens: int | None = Field(description="LLM API 最大Token数", default=None) + max_tokens: int | None = Field( + description="LLM API 最大Token数", default=None) temperature: float | None = Field(description="LLM API 温度", default=None) @@ -143,8 +146,10 @@ class FunctionCallConfig(BaseModel): model: str = Field(description="Function Call 模型名") endpoint: str = Field(description="Function Call API URL地址") api_key: str = Field(description="Function Call API密钥") - max_tokens: int | None = Field(description="Function Call 最大Token数", default=None) - temperature: float | None = Field(description="Function Call 温度", default=None) + max_tokens: int | None = Field( + description="Function Call 最大Token数", default=None) + temperature: float | None = Field( + description="Function Call 温度", default=None) class SecurityConfig(BaseModel): @@ -172,7 +177,7 @@ class SandboxConfig(BaseModel): class ExtraConfig(BaseModel): """额外配置""" - sql_url: str = Field(description="SQL API URL") + sql_url: str = Field(default="", description="SQL API URL") class ConfigModel(BaseModel):