import { NextResponse } from "next/server" import { cookies, headers } from "next/headers" import { ADMIN_SESSION_COOKIE, destroyAdminSession, } from "@/lib/server/admin-auth" export async function POST(request: Request) { const cookieStore = await cookies() const rawToken = cookieStore.get(ADMIN_SESSION_COOKIE)?.value || null await destroyAdminSession(rawToken) const response = NextResponse.redirect( new URL("/sign-in", await getPublicOrigin(request)) ) response.cookies.set(ADMIN_SESSION_COOKIE, "", { httpOnly: true, sameSite: "lax", secure: true, path: "/", expires: new Date(0), }) return response } async function getPublicOrigin(request: Request) { const headerStore = await headers() const origin = headerStore.get("origin") if (origin) { return origin } const referer = headerStore.get("referer") if (referer) { return new URL(referer).origin } const siteUrl = process.env.NEXT_PUBLIC_SITE_URL if (siteUrl) { return siteUrl } const forwardedProto = headerStore.get("x-forwarded-proto") const forwardedHost = headerStore.get("x-forwarded-host") const host = forwardedHost || headerStore.get("host") if (host) { return `${forwardedProto || "https"}://${host}` } return new URL(request.url).origin }