Profile hard-guard: redirect /profile to /login when logged out

The account sub-pages were already protected via validateTokens; add a loader
on the profile index so the hub itself bounces to /login when unauthenticated.
This commit is contained in:
Arda Samadi 2026-06-16 15:00:53 +03:30
parent 24449fe5e9
commit 207d46eefd

View File

@ -1,4 +1,5 @@
import { MetaFunction } from "@remix-run/node"; import { MetaFunction, redirect, type LoaderFunctionArgs } from "@remix-run/node";
import { sessionStorage } from "~/sessions.server";
import { import {
BookmarkMinus, BookmarkMinus,
ChevronLeft, ChevronLeft,
@ -33,6 +34,19 @@ interface MenuItemType {
hasBorder?: boolean; hasBorder?: boolean;
image: React.ReactNode; image: React.ReactNode;
} }
// Guard: the account hub requires login (sub-pages are already protected via
// validateTokens; this covers the /profile index itself).
export async function loader({ request }: LoaderFunctionArgs) {
const session = await sessionStorage.getSession(
request.headers.get("cookie")
);
const user = session.get("user");
if (!user?.access_token) {
throw redirect("/login");
}
return null;
}
export default function Profile() { export default function Profile() {
const { user, theme: initialTheme } = useRootData(); const { user, theme: initialTheme } = useRootData();
const [storeModalOpen, setStoreModalOpen] = useState(false); const [storeModalOpen, setStoreModalOpen] = useState(false);