26 lines
652 B
TypeScript
26 lines
652 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { getDb } from "@/lib/db";
|
|
import { cookies } from "next/headers";
|
|
|
|
export async function POST() {
|
|
try {
|
|
const sql = getDb();
|
|
const cookieStore = await cookies();
|
|
const sessionToken = cookieStore.get("session_token")?.value;
|
|
|
|
if (sessionToken) {
|
|
await sql(`DELETE FROM sessions WHERE token = $1`, [sessionToken]);
|
|
}
|
|
|
|
cookieStore.delete("session_token");
|
|
|
|
return NextResponse.json({ success: true });
|
|
} catch (error) {
|
|
console.error("Logout error:", error);
|
|
return NextResponse.json(
|
|
{ error: "Failed to logout" },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|