mirror of
https://github.com/open-webui/open-webui
synced 2025-02-20 12:00:22 +00:00
feat: add WEBUI_SESSION_COOKIE_SAME_SITE for when open webui is embedded
This commit is contained in:
parent
a1f4706aa1
commit
af4f8aa589
@ -729,6 +729,11 @@ WEBUI_SECRET_KEY = os.environ.get(
|
|||||||
), # DEPRECATED: remove at next major version
|
), # DEPRECATED: remove at next major version
|
||||||
)
|
)
|
||||||
|
|
||||||
|
WEBUI_SESSION_COOKIE_SAME_SITE = os.environ.get(
|
||||||
|
"WEBUI_SESSION_COOKIE_SAME_SITE",
|
||||||
|
os.environ.get("WEBUI_SESSION_COOKIE_SAME_SITE", "lax"),
|
||||||
|
)
|
||||||
|
|
||||||
if WEBUI_AUTH and WEBUI_SECRET_KEY == "":
|
if WEBUI_AUTH and WEBUI_SECRET_KEY == "":
|
||||||
raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
|
raise ValueError(ERROR_MESSAGES.ENV_VAR_NOT_FOUND)
|
||||||
|
|
||||||
|
@ -73,6 +73,7 @@ from config import (
|
|||||||
ENABLE_OAUTH_SIGNUP,
|
ENABLE_OAUTH_SIGNUP,
|
||||||
OAUTH_MERGE_ACCOUNTS_BY_EMAIL,
|
OAUTH_MERGE_ACCOUNTS_BY_EMAIL,
|
||||||
WEBUI_SECRET_KEY,
|
WEBUI_SECRET_KEY,
|
||||||
|
WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||||
)
|
)
|
||||||
from constants import ERROR_MESSAGES, WEBHOOK_MESSAGES
|
from constants import ERROR_MESSAGES, WEBHOOK_MESSAGES
|
||||||
from utils.webhook import post_webhook
|
from utils.webhook import post_webhook
|
||||||
@ -507,7 +508,10 @@ for provider_name, provider_config in OAUTH_PROVIDERS.items():
|
|||||||
# SessionMiddleware is used by authlib for oauth
|
# SessionMiddleware is used by authlib for oauth
|
||||||
if len(OAUTH_PROVIDERS) > 0:
|
if len(OAUTH_PROVIDERS) > 0:
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
SessionMiddleware, secret_key=WEBUI_SECRET_KEY, session_cookie="oui-session"
|
SessionMiddleware,
|
||||||
|
secret_key=WEBUI_SECRET_KEY,
|
||||||
|
session_cookie="oui-session",
|
||||||
|
same_site=WEBUI_SESSION_COOKIE_SAME_SITE,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -524,7 +528,11 @@ async def oauth_callback(provider: str, request: Request):
|
|||||||
if provider not in OAUTH_PROVIDERS:
|
if provider not in OAUTH_PROVIDERS:
|
||||||
raise HTTPException(404)
|
raise HTTPException(404)
|
||||||
client = oauth.create_client(provider)
|
client = oauth.create_client(provider)
|
||||||
token = await client.authorize_access_token(request)
|
try:
|
||||||
|
token = await client.authorize_access_token(request)
|
||||||
|
except Exception as e:
|
||||||
|
log.error(f"OAuth callback error: {e}")
|
||||||
|
raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED)
|
||||||
user_data: UserInfo = token["userinfo"]
|
user_data: UserInfo = token["userinfo"]
|
||||||
|
|
||||||
sub = user_data.get("sub")
|
sub = user_data.get("sub")
|
||||||
|
Loading…
Reference in New Issue
Block a user