From 84d0940da147db08ea093dc2f7919054d8ee5dfd Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 31 Aug 2026 00:11:04 -0400 Subject: [PATCH] refac --- src/lib/apis/auths/index.ts | 30 +++++++++++++++++++ .../Settings/Account/UpdatePassword.svelte | 4 +-- .../layout/Overlay/AccountPending.svelte | 4 +-- .../components/layout/Sidebar/UserMenu.svelte | 4 +-- src/lib/i18n/locales/en-US/translation.json | 1 + src/routes/auth/+page.svelte | 4 +-- 6 files changed, 39 insertions(+), 8 deletions(-) diff --git a/src/lib/apis/auths/index.ts b/src/lib/apis/auths/index.ts index fcd5b1708c..57f72fb27d 100644 --- a/src/lib/apis/auths/index.ts +++ b/src/lib/apis/auths/index.ts @@ -407,6 +407,36 @@ export const userSignOut = async () => { return res; }; +export const getLogoutRedirectUrl = (redirectUrl?: string | null) => { + const logoutUrl = new URL('/auth?state=logout', window.location.origin); + const postLogoutUrl = new URL('/auth', window.location.origin); + if (!redirectUrl) { + return logoutUrl.href; + } + + const url = new URL(redirectUrl, window.location.origin); + if (url.origin === window.location.origin && url.pathname === '/auth') { + url.searchParams.set('state', 'logout'); + return url.href; + } + + const postLogoutRedirectUri = url.searchParams.get('post_logout_redirect_uri'); + if (postLogoutRedirectUri) { + const configuredPostLogoutUrl = new URL(postLogoutRedirectUri, window.location.origin); + if ( + configuredPostLogoutUrl.origin === window.location.origin && + configuredPostLogoutUrl.pathname === '/auth' + ) { + url.searchParams.set('state', 'logout'); + } + return url.href; + } + + url.searchParams.set('post_logout_redirect_uri', postLogoutUrl.href); + url.searchParams.set('state', 'logout'); + return url.href; +}; + export const addUser = async ( token: string, name: string, diff --git a/src/lib/components/chat/Settings/Account/UpdatePassword.svelte b/src/lib/components/chat/Settings/Account/UpdatePassword.svelte index f35cc5e7e2..2146f60095 100644 --- a/src/lib/components/chat/Settings/Account/UpdatePassword.svelte +++ b/src/lib/components/chat/Settings/Account/UpdatePassword.svelte @@ -1,7 +1,7 @@