From 7df6d7f325c7eac91845f8acd932c98335df00fa Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 17 May 2025 00:38:39 +0400 Subject: [PATCH] refac/fix: signout redirect flow --- backend/open_webui/routers/auths.py | 23 ++++++++++++++----- src/lib/apis/auths/index.ts | 1 + .../components/layout/Sidebar/UserMenu.svelte | 5 ++-- src/routes/+layout.svelte | 6 ++--- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/backend/open_webui/routers/auths.py b/backend/open_webui/routers/auths.py index 390c7d428..793bdfd30 100644 --- a/backend/open_webui/routers/auths.py +++ b/backend/open_webui/routers/auths.py @@ -31,7 +31,7 @@ from open_webui.env import ( SRC_LOG_LEVELS, ) from fastapi import APIRouter, Depends, HTTPException, Request, status -from fastapi.responses import RedirectResponse, Response +from fastapi.responses import RedirectResponse, Response, JSONResponse from open_webui.config import OPENID_PROVIDER_URL, ENABLE_OAUTH_SIGNUP, ENABLE_LDAP from pydantic import BaseModel @@ -577,9 +577,14 @@ async def signout(request: Request, response: Response): logout_url = openid_data.get("end_session_endpoint") if logout_url: response.delete_cookie("oauth_id_token") - return RedirectResponse( + + return JSONResponse( + status_code=200, + content={ + "status": True, + "redirect_url": f"{logout_url}?id_token_hint={oauth_id_token}", + }, headers=response.headers, - url=f"{logout_url}?id_token_hint={oauth_id_token}", ) else: raise HTTPException( @@ -594,12 +599,18 @@ async def signout(request: Request, response: Response): ) if WEBUI_AUTH_SIGNOUT_REDIRECT_URL: - return RedirectResponse( + return JSONResponse( + status_code=200, + content={ + "status": True, + "redirect_url": WEBUI_AUTH_SIGNOUT_REDIRECT_URL, + }, headers=response.headers, - url=WEBUI_AUTH_SIGNOUT_REDIRECT_URL, ) - return {"status": True} + return JSONResponse( + status_code=200, content={"status": True}, headers=response.headers + ) ############################ diff --git a/src/lib/apis/auths/index.ts b/src/lib/apis/auths/index.ts index a23e4cdc6..169a6c14f 100644 --- a/src/lib/apis/auths/index.ts +++ b/src/lib/apis/auths/index.ts @@ -347,6 +347,7 @@ export const userSignOut = async () => { if (error) { throw error; } + return res; }; export const addUser = async ( diff --git a/src/lib/components/layout/Sidebar/UserMenu.svelte b/src/lib/components/layout/Sidebar/UserMenu.svelte index 3680a4daa..0993c784d 100644 --- a/src/lib/components/layout/Sidebar/UserMenu.svelte +++ b/src/lib/components/layout/Sidebar/UserMenu.svelte @@ -156,12 +156,11 @@