diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index e02424f969..f7d9f9ccf7 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -468,7 +468,9 @@ ENABLE_COMPRESSION_MIDDLEWARE = ( #################################### # OAUTH Configuration #################################### - +ENABLE_OAUTH_EMAIL_FALLBACK = ( + os.environ.get("ENABLE_OAUTH_EMAIL_FALLBACK", "False").lower() == "true" +) ENABLE_OAUTH_ID_TOKEN_COOKIE = ( os.environ.get("ENABLE_OAUTH_ID_TOKEN_COOKIE", "True").lower() == "true" @@ -482,7 +484,6 @@ OAUTH_SESSION_TOKEN_ENCRYPTION_KEY = os.environ.get( "OAUTH_SESSION_TOKEN_ENCRYPTION_KEY", WEBUI_SECRET_KEY ) - #################################### # SCIM Configuration #################################### diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index ff336dd175..1f1084af2b 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -62,6 +62,7 @@ from open_webui.env import ( WEBUI_AUTH_COOKIE_SAME_SITE, WEBUI_AUTH_COOKIE_SECURE, ENABLE_OAUTH_ID_TOKEN_COOKIE, + ENABLE_OAUTH_EMAIL_FALLBACK, OAUTH_CLIENT_INFO_ENCRYPTION_KEY, ) from open_webui.utils.misc import parse_duration @@ -1153,6 +1154,8 @@ class OAuthManager: except Exception as e: log.warning(f"Error fetching GitHub email: {e}") raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED) + elif ENABLE_OAUTH_EMAIL_FALLBACK: + email = f"{provider_sub}.local" else: log.warning(f"OAuth callback failed, email is missing: {user_data}") raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)