From 88ea0f523fe2c462c65658899b1ebeebef64c00a Mon Sep 17 00:00:00 2001 From: Haziq Yusof Date: Sat, 28 Jun 2025 03:08:46 +0800 Subject: [PATCH] feat: custom oauth timeout --- backend/open_webui/config.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/config.py b/backend/open_webui/config.py index 898ac1b594..ac51b521ca 100644 --- a/backend/open_webui/config.py +++ b/backend/open_webui/config.py @@ -431,6 +431,12 @@ OAUTH_SCOPES = PersistentConfig( os.environ.get("OAUTH_SCOPES", "openid email profile"), ) +OAUTH_TIMEOUT = PersistentConfig( + "OAUTH_TIMEOUT", + "oauth.oidc.oauth_timeout", + os.environ.get("OAUTH_TIMEOUT", 5), +) + OAUTH_CODE_CHALLENGE_METHOD = PersistentConfig( "OAUTH_CODE_CHALLENGE_METHOD", "oauth.oidc.code_challenge_method", @@ -540,7 +546,10 @@ def load_oauth_providers(): client_id=GOOGLE_CLIENT_ID.value, client_secret=GOOGLE_CLIENT_SECRET.value, server_metadata_url="https://accounts.google.com/.well-known/openid-configuration", - client_kwargs={"scope": GOOGLE_OAUTH_SCOPE.value}, + client_kwargs={ + "scope": GOOGLE_OAUTH_SCOPE.value, + "timeout": OAUTH_TIMEOUT.value + }, redirect_uri=GOOGLE_REDIRECT_URI.value, ) @@ -563,6 +572,7 @@ def load_oauth_providers(): server_metadata_url=f"{MICROSOFT_CLIENT_LOGIN_BASE_URL.value}/{MICROSOFT_CLIENT_TENANT_ID.value}/v2.0/.well-known/openid-configuration?appid={MICROSOFT_CLIENT_ID.value}", client_kwargs={ "scope": MICROSOFT_OAUTH_SCOPE.value, + "timeout": OAUTH_TIMEOUT.value }, redirect_uri=MICROSOFT_REDIRECT_URI.value, ) @@ -584,7 +594,10 @@ def load_oauth_providers(): authorize_url="https://github.com/login/oauth/authorize", api_base_url="https://api.github.com", userinfo_endpoint="https://api.github.com/user", - client_kwargs={"scope": GITHUB_CLIENT_SCOPE.value}, + client_kwargs={ + "scope": GITHUB_CLIENT_SCOPE.value, + "timeout": OAUTH_TIMEOUT.value + }, redirect_uri=GITHUB_CLIENT_REDIRECT_URI.value, ) @@ -603,6 +616,7 @@ def load_oauth_providers(): def oidc_oauth_register(client): client_kwargs = { "scope": OAUTH_SCOPES.value, + "timeout": OAUTH_TIMEOUT.value } if (