Add cookie function
This commit is contained in:
parent
1f0b18d496
commit
0f3dada6cc
3 changed files with 21 additions and 23 deletions
10
src/api/cookies.ts
Normal file
10
src/api/cookies.ts
Normal 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}`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,9 +5,10 @@ import { Separator } from "@/components/ui/separator"
|
||||||
import { SidebarNav } from "@/components/sidebar-nav"
|
import { SidebarNav } from "@/components/sidebar-nav"
|
||||||
import SiteProvider from "@app/providers/SiteProvider"
|
import SiteProvider from "@app/providers/SiteProvider"
|
||||||
import { internal } from "@app/api"
|
import { internal } from "@app/api"
|
||||||
import { cookies } from "next/headers"
|
|
||||||
import { GetSiteResponse } from "@server/routers/site"
|
import { GetSiteResponse } from "@server/routers/site"
|
||||||
import { AxiosResponse } from "axios"
|
import { AxiosResponse } from "axios"
|
||||||
|
import { redirect } from "next/navigation"
|
||||||
|
import { authCookieHeader } from "@app/api/cookies"
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Forms",
|
title: "Forms",
|
||||||
|
@ -42,17 +43,10 @@ export default async function SettingsLayout({ children, params }: SettingsLayou
|
||||||
let site = null;
|
let site = null;
|
||||||
if (params.siteId !== "create") {
|
if (params.siteId !== "create") {
|
||||||
try {
|
try {
|
||||||
const sessionId = cookies().get("session")?.value ?? null;
|
const res = await internal.get<AxiosResponse<GetSiteResponse>>(`/site/${params.siteId}`, authCookieHeader());
|
||||||
const res = await internal
|
|
||||||
.get<AxiosResponse<GetSiteResponse>>(`/site/${params.siteId}`, {
|
|
||||||
headers: {
|
|
||||||
Cookie: `session=${sessionId}`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
site = res.data.data;
|
site = res.data.data;
|
||||||
} catch {
|
} 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">
|
<div className="space-y-0.5">
|
||||||
<h2 className="text-2xl font-bold tracking-tight">Settings</h2>
|
<h2 className="text-2xl font-bold tracking-tight">Settings</h2>
|
||||||
<p className="text-muted-foreground">
|
<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>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Separator className="my-6" />
|
<Separator className="my-6" />
|
||||||
|
@ -87,10 +81,10 @@ export default async function SettingsLayout({ children, params }: SettingsLayou
|
||||||
<SidebarNav items={sidebarNavItems} disabled={params.siteId == "create"} />
|
<SidebarNav items={sidebarNavItems} disabled={params.siteId == "create"} />
|
||||||
</aside>
|
</aside>
|
||||||
<div className="flex-1 lg:max-w-2xl">
|
<div className="flex-1 lg:max-w-2xl">
|
||||||
<SiteProvider site={site}>
|
<SiteProvider site={site}>
|
||||||
{children}
|
{children}
|
||||||
</SiteProvider>
|
</SiteProvider>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { internal } from "@app/api";
|
import { internal } from "@app/api";
|
||||||
|
import { authCookieHeader } from "@app/api/cookies";
|
||||||
import { GetUserResponse } from "@server/routers/user";
|
import { GetUserResponse } from "@server/routers/user";
|
||||||
import { AxiosResponse } from "axios";
|
import { AxiosResponse } from "axios";
|
||||||
import { cookies } from "next/headers";
|
import { cookies } from "next/headers";
|
||||||
|
@ -7,14 +8,7 @@ export async function verifySession(): Promise<GetUserResponse | null> {
|
||||||
const sessionId = cookies().get("session")?.value ?? null;
|
const sessionId = cookies().get("session")?.value ?? null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await internal.get<AxiosResponse<GetUserResponse>>(
|
const res = await internal.get<AxiosResponse<GetUserResponse>>("/user", authCookieHeader());
|
||||||
"/user",
|
|
||||||
{
|
|
||||||
headers: {
|
|
||||||
Cookie: `session=${sessionId}`,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
} catch {
|
} catch {
|
||||||
|
|
Loading…
Add table
Reference in a new issue