Add cookie function

This commit is contained in:
Owen Schwartz 2024-10-14 15:00:10 -04:00
parent 1f0b18d496
commit 0f3dada6cc
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
3 changed files with 21 additions and 23 deletions

10
src/api/cookies.ts Normal file
View file

@ -0,0 +1,10 @@
import { cookies } from "next/headers";
export function authCookieHeader() {
const sessionId = cookies().get("session")?.value ?? null;
return {
headers: {
Cookie: `session=${sessionId}`
}
}
}

View file

@ -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<AxiosResponse<GetSiteResponse>>(`/site/${params.siteId}`, {
headers: {
Cookie: `session=${sessionId}`,
},
});
const res = await internal.get<AxiosResponse<GetSiteResponse>>(`/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
<div className="space-y-0.5">
<h2 className="text-2xl font-bold tracking-tight">Settings</h2>
<p className="text-muted-foreground">
{ params.siteId == "create" ? "Create site..." : "Manage settings on " + site?.name || ""}.
{params.siteId == "create" ? "Create site..." : "Manage settings on " + site?.name || ""}.
</p>
</div>
<Separator className="my-6" />

View file

@ -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<GetUserResponse | null> {
const sessionId = cookies().get("session")?.value ?? null;
try {
const res = await internal.get<AxiosResponse<GetUserResponse>>(
"/user",
{
headers: {
Cookie: `session=${sessionId}`,
},
},
);
const res = await internal.get<AxiosResponse<GetUserResponse>>("/user", authCookieHeader());
return res.data.data;
} catch {