26 lines
938 B
TypeScript
26 lines
938 B
TypeScript
"use server";
|
|
import { NextResponse } from "next/server";
|
|
import type { NextRequest } from "next/server";
|
|
import { logout } from "~/server/functions";
|
|
import { middleware } from "~/middleware";
|
|
|
|
export const POST = async (request: NextRequest) => {
|
|
const middlewareResponse = await middleware(request);
|
|
if (middlewareResponse) return middlewareResponse;
|
|
|
|
try {
|
|
const { refreshToken } = await request.json() as { refreshToken: string };
|
|
if (!refreshToken)
|
|
return NextResponse.json({ message: "Refresh token is required" }, { status: 400 });
|
|
|
|
await logout(refreshToken);
|
|
return NextResponse.json({ message: "Logged out successfully" });
|
|
} catch (error) {
|
|
console.error('Logout error:', error);
|
|
if (error instanceof Error)
|
|
return NextResponse.json({ message: error.message }, { status: 400 });
|
|
else
|
|
return NextResponse.json({ message: "Unknown error occurred" }, { status: 500 });
|
|
}
|
|
}
|