diff --git a/app/api/user/validate/route.ts b/app/api/user/validate/route.ts new file mode 100644 index 0000000..801624a --- /dev/null +++ b/app/api/user/validate/route.ts @@ -0,0 +1,38 @@ +import { NextRequest, NextResponse } from "next/server"; +import jwt from 'jsonwebtoken'; +import prisma from "@/app/prisma"; + +interface Body { + token: string; +} + +export async function POST(request: NextRequest) { + try { + const body: Body = await request.json(); + + if (!body.token) { + return NextResponse.json({ error: "Missing required fields" }, { status: 400 }); + } + + if(!process.env.JWT_SECRET) { + return NextResponse.json({ error: "No JWT secret found" }, { status: 500 }); + } + + const decoded = jwt.verify(body.token, process.env.JWT_SECRET) as { id: string }; + + const user = await prisma.user.findUnique({ + where: { + id: decoded.id, + }, + }); + + if (!user) { + return NextResponse.json({ error: "User not found" }, { status: 404 }); + } + + return NextResponse.json({ message: "Valid" }, { status: 200 }); + + } catch (error: any) { + return NextResponse.json({ error: "Internal Server Error" }, { status: 500 }); + } +}