More stuff

This commit is contained in:
2024-10-04 16:56:32 -05:00
parent edffe130a5
commit 7371cc8851
14 changed files with 299 additions and 11 deletions

View File

@@ -0,0 +1,32 @@
"use server";
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { logout } from "~/server/functions";
import { middleware } from "~/middleware";
import jwt from "jsonwebtoken";
export const POST = async (request: NextRequest) => {
const middlewareResponse = middleware(request);
if (middlewareResponse) return middlewareResponse;
try {
const { token } = await request.json() as { token: string };
if (!token)
return NextResponse.json({ message: "Token is required" },{ status: 400 });
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET!) as { userId: number };
if (!decoded.userId)
throw new Error("Invalid token");
await logout(decoded.userId);
return NextResponse.json({ message: "Logged out successfully" });
} catch (jwtError) {
return NextResponse.json({ message: "Invalid token", error: jwtError }, { status: 400 });
}
} catch (error) {
if (error instanceof Error)
return NextResponse.json({ message: error.message }, { status: 400 });
else
return NextResponse.json({ message: "Unknown error occurred" }, { status: 500 });
}
}