diff --git a/packages/stack/src/components-page/stack-handler.tsx b/packages/stack/src/components-page/stack-handler.tsx index bdf58ffb7..e147def02 100644 --- a/packages/stack/src/components-page/stack-handler.tsx +++ b/packages/stack/src/components-page/stack-handler.tsx @@ -5,7 +5,7 @@ import EmailVerification from "./email-verification"; import { PasswordReset, StackServerApp } from ".."; import MessageCard from "../components/message-card"; import { HandlerUrls } from "../lib/stack-app"; -import Signout from "./sign-out"; +import SignOut from "./sign-out"; import ForgotPassword from "./forgot-password"; import OAuthCallback from "./oauth-callback"; import AccountSettings from "./account-settings"; @@ -40,14 +40,23 @@ export default async function StackHandler({ redirect(url, RedirectType.replace); } + async function redirectIfHasUser() { + const user = await app.getServerUser(); + if (user) { + redirect(app.urls.afterSignIn); + } + } + const path = stack.join('/'); switch (path) { case 'signin': { redirectIfNotHandler('signIn'); + await redirectIfHasUser(); return ; } case 'signup': { redirectIfNotHandler('signUp'); + await redirectIfHasUser(); return ; } case 'email-verification': { @@ -64,7 +73,7 @@ export default async function StackHandler({ } case 'signout': { redirectIfNotHandler('signOut'); - return ; + return ; } case 'oauth-callback': { redirectIfNotHandler('oauthCallback');