From 6df09bf1dd964cfae6607e92fbbd2c24966a8196 Mon Sep 17 00:00:00 2001 From: dolphin Date: Fri, 15 May 2026 21:54:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20sso=E7=8E=AF=E5=A2=83=E4=B8=8B=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=90=8E=E5=8F=B0=E7=AE=A1=E7=90=86=E6=9D=83=E9=99=90?= =?UTF-8?q?=E4=BC=9A=E8=BF=9B=E5=85=A5=E6=97=A0=E9=99=90=E5=BE=AA=E7=8E=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/platform/src/contexts/userContext.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/frontend/platform/src/contexts/userContext.tsx b/src/frontend/platform/src/contexts/userContext.tsx index 6759462f3..46de0fd22 100644 --- a/src/frontend/platform/src/contexts/userContext.tsx +++ b/src/frontend/platform/src/contexts/userContext.tsx @@ -1,6 +1,5 @@ import { toast } from "@/components/bs-ui/toast/use-toast"; import { resolveRoutePermissions } from "@/routes"; -import { navigateBackOrFallback } from "@/utils/navigation"; import { getWorkspaceClientUrl } from "@/utils/workspaceUrl"; import i18next from "i18next"; import { ReactNode, createContext, useLayoutEffect, useState } from "react"; @@ -174,7 +173,12 @@ export function UserProvider({ children }: { children: ReactNode }) { variant: 'error', description: i18next.t('menu.noAdminConsoleAccess'), }) - navigateBackOrFallback(getWorkspaceClientUrl('/')) + // Hard-navigate to the workspace client. Must NOT use history.back() + // here: under the SSO flow the previous history entry is the IdP / + // portal page, so "going back" silently re-triggers SSO and produces + // an infinite redirect loop for non-admin users. replace() also drops + // the un-usable platform URL from history. + window.location.replace(getWorkspaceClientUrl('/')) return }