TypeScript 98.3%
CSS 0.9%
Shell 0.7%
1import { NextResponse } from "next/server";2import { cookies } from "next/headers";3import { apiError } from "@/lib/api.ts";4import { SESSION_COOKIE, assertSameOrigin, destroySession, logAuthEvent, userForToken } from "@/lib/auth/session.ts";56export async function POST() {7 try {8 await assertSameOrigin();9 const jar = await cookies();10 const token = jar.get(SESSION_COOKIE)?.value;11 if (token) {12 const u = userForToken(token);13 destroySession(token);14 if (u) logAuthEvent("logout", { userId: u.id, username: u.username });15 }16 const res = NextResponse.json({ ok: true });17 res.cookies.delete(SESSION_COOKIE);18 return res;19 } catch (e) {20 return apiError(e);21 }22}23