Some checks are pending
CI - Production Readiness / Verify (push) Waiting to run
34 lines
1.0 KiB
TypeScript
34 lines
1.0 KiB
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
|
|
import { getRequestAuditContext, writeAuditTrail } from "@/lib/audit";
|
|
import { getSession, SESSION_COOKIE } from "@/lib/auth";
|
|
import { getRequestBaseUrl } from "@/lib/request-url";
|
|
|
|
export async function POST(request: NextRequest) {
|
|
const session = await getSession();
|
|
const { ipAddress, userAgent } = await getRequestAuditContext();
|
|
|
|
if (session) {
|
|
await writeAuditTrail({
|
|
tenantId: session.tenantId,
|
|
actorUserId: session.userId,
|
|
entityType: "user",
|
|
entityId: session.userId,
|
|
action: "user_logout",
|
|
metadata: { email: session.email },
|
|
ipAddress,
|
|
userAgent
|
|
});
|
|
}
|
|
|
|
const response = NextResponse.redirect(new URL("/login", getRequestBaseUrl(request)));
|
|
response.cookies.delete(SESSION_COOKIE);
|
|
return response;
|
|
}
|
|
|
|
export async function GET(request: NextRequest) {
|
|
const baseUrl = getRequestBaseUrl(request);
|
|
const response = NextResponse.redirect(new URL("/login", baseUrl));
|
|
return response;
|
|
}
|