diff --git a/packages/login/index.d.ts b/packages/login/index.d.ts index 75f691fe4f..f6c82cc459 100644 --- a/packages/login/index.d.ts +++ b/packages/login/index.d.ts @@ -96,6 +96,7 @@ declare global { capabilities: ICapabilities; match: MatchType; currentColorScheme: ITheme; + isAuth: boolean; } interface DevRequest { diff --git a/packages/login/src/client/components/Login.tsx b/packages/login/src/client/components/Login.tsx index 6b8cd13c53..0d2658088a 100644 --- a/packages/login/src/client/components/Login.tsx +++ b/packages/login/src/client/components/Login.tsx @@ -24,7 +24,6 @@ import SSOIcon from "../../../../../public/images/sso.react.svg"; interface ILoginProps extends IInitialState { isDesktopEditor?: boolean; - isAuth: boolean; } const Login: React.FC = ({ portalSettings, @@ -33,7 +32,6 @@ const Login: React.FC = ({ capabilities, isDesktopEditor, match, - isAuth, currentColorScheme, theme, }) => { @@ -46,10 +44,6 @@ const Login: React.FC = ({ const { t } = useTranslation(["Login", "Common"]); - useEffect(() => { - if (isAuth) window.location.href = "/"; - }, []); - const ssoExists = () => { if (ssoUrl) return true; else return false; diff --git a/packages/login/src/server/index.ts b/packages/login/src/server/index.ts index d450e0f0b3..80771b45b5 100644 --- a/packages/login/src/server/index.ts +++ b/packages/login/src/server/index.ts @@ -31,7 +31,7 @@ app.use("/login", express.static(path.resolve(path.join(__dirname, "client")))); app.use(logger("dev", { stream: stream })); -app.get("*", async (req: ILoginRequest, res: Response) => { +app.get("*", async (req: ILoginRequest, res: Response, next) => { const { i18n, cookies, headers, query, t, url } = req; let initialState: IInitialState; let assets: assetsType; @@ -41,6 +41,11 @@ app.get("*", async (req: ILoginRequest, res: Response) => { try { initialState = await getInitialState(query); + if (initialState.isAuth) { + res.redirect('/'); + next(); + } + let currentLanguage = initialState.portalSettings.culture; if (cookies && cookies[LANGUAGE]) {