29 lines
758 B
TypeScript
29 lines
758 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { getSessionTokenFromCookies, revokeSession } from "@/lib/server/auth";
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
const SESSION_COOKIE_NAME = "mission_control_session";
|
|
|
|
export async function POST() {
|
|
try {
|
|
const token = await getSessionTokenFromCookies();
|
|
if (token) {
|
|
await revokeSession(token);
|
|
}
|
|
|
|
// Clear cookie
|
|
const response = NextResponse.json({ success: true });
|
|
response.cookies.set(SESSION_COOKIE_NAME, "", {
|
|
httpOnly: true,
|
|
sameSite: "lax",
|
|
secure: process.env.NODE_ENV === "production",
|
|
path: "/",
|
|
maxAge: 0,
|
|
});
|
|
|
|
return response;
|
|
} catch {
|
|
return NextResponse.json({ error: "Logout failed" }, { status: 500 });
|
|
}
|
|
} |