diff --git a/src/api/cookies.ts b/src/api/cookies.ts new file mode 100644 index 00000000..2986437d --- /dev/null +++ b/src/api/cookies.ts @@ -0,0 +1,10 @@ +import { cookies } from "next/headers"; + +export function authCookieHeader() { + const sessionId = cookies().get("session")?.value ?? null; + return { + headers: { + Cookie: `session=${sessionId}` + } + } +} diff --git a/src/app/[orgId]/sites/[siteId]/layout.tsx b/src/app/[orgId]/sites/[siteId]/layout.tsx index 189fb5df..59659007 100644 --- a/src/app/[orgId]/sites/[siteId]/layout.tsx +++ b/src/app/[orgId]/sites/[siteId]/layout.tsx @@ -5,9 +5,10 @@ import { Separator } from "@/components/ui/separator" import { SidebarNav } from "@/components/sidebar-nav" import SiteProvider from "@app/providers/SiteProvider" import { internal } from "@app/api" -import { cookies } from "next/headers" import { GetSiteResponse } from "@server/routers/site" import { AxiosResponse } from "axios" +import { redirect } from "next/navigation" +import { authCookieHeader } from "@app/api/cookies" export const metadata: Metadata = { title: "Forms", @@ -42,17 +43,10 @@ export default async function SettingsLayout({ children, params }: SettingsLayou let site = null; if (params.siteId !== "create") { try { - const sessionId = cookies().get("session")?.value ?? null; - const res = await internal - .get>(`/site/${params.siteId}`, { - headers: { - Cookie: `session=${sessionId}`, - }, - }); - + const res = await internal.get>(`/site/${params.siteId}`, authCookieHeader()); site = res.data.data; } catch { - return null; + redirect(`/${params.orgId}/sites`) } } @@ -78,7 +72,7 @@ export default async function SettingsLayout({ children, params }: SettingsLayou

Settings

- { params.siteId == "create" ? "Create site..." : "Manage settings on " + site?.name || ""}. + {params.siteId == "create" ? "Create site..." : "Manage settings on " + site?.name || ""}.

@@ -87,10 +81,10 @@ export default async function SettingsLayout({ children, params }: SettingsLayou
- - {children} - -
+ + {children} + + diff --git a/src/lib/auth/verifySession.ts b/src/lib/auth/verifySession.ts index 13319bde..6fd454a3 100644 --- a/src/lib/auth/verifySession.ts +++ b/src/lib/auth/verifySession.ts @@ -1,4 +1,5 @@ import { internal } from "@app/api"; +import { authCookieHeader } from "@app/api/cookies"; import { GetUserResponse } from "@server/routers/user"; import { AxiosResponse } from "axios"; import { cookies } from "next/headers"; @@ -7,14 +8,7 @@ export async function verifySession(): Promise { const sessionId = cookies().get("session")?.value ?? null; try { - const res = await internal.get>( - "/user", - { - headers: { - Cookie: `session=${sessionId}`, - }, - }, - ); + const res = await internal.get>("/user", authCookieHeader()); return res.data.data; } catch {