IKHSAN
ENID Baca dalam Bahasa Indonesia

homeio

Public

Forked from doctor-io/homeio

Branch
main
Latest commit
958d74616 October 2026

route.ts

Open raw
import { type NextRequest, NextResponse } from "next/server";
import {
  createRequestId,
  withServerTiming,
} from "@/lib/server/logging/logger";
import {
  getAuthCookieName,
  getExpiredSessionCookieOptions,
} from "@/lib/server/modules/auth/cookies";
import { logoutSession } from "@/lib/server/modules/auth/service";

export const runtime = "nodejs";

export async function POST(request: NextRequest) {
  const requestId = createRequestId();
  const sessionToken = request.cookies.get(getAuthCookieName())?.value;

  await withServerTiming(
    {
      layer: "api",
      action: "auth.logout",
      requestId,
    },
    async () => {
      await logoutSession(sessionToken);
      return Promise.resolve();
    },
  );

  const response = NextResponse.json({
    ok: true,
  });

  response.cookies.set(
    getAuthCookieName(),
    "",
    getExpiredSessionCookieOptions(request),
  );

  return response;
}
bytes
919
lines
42
Type
ts
Latest commit
16 October 2026