SPB Git
652 B · 14 lines typescript
1import { getSession, revokeSession, clearSessionCookie, revokeAllSessions } from "@/lib/auth/session";2import { assertSameOrigin, jsonError } from "@/lib/auth/guard";3import { audit } from "@/lib/audit";4export async function POST(req: Request) {5  try {6    await assertSameOrigin();7    const s = await getSession();8    const all = new URL(req.url).searchParams.get("all") === "1";9    if (s) { if (all) await revokeAllSessions(s.id); else await revokeSession(s.sessionId); await audit(s.id, all ? "auth.logout_all" : "auth.logout"); }10    await clearSessionCookie();11    return Response.json({ ok: true });12  } catch (e) { return jsonError(e); }13}14
Files · main
Menu

Theme