diff --git a/app/api/auth/validate/route.ts b/app/api/auth/validate/route.ts new file mode 100644 index 0000000..14ca8b3 --- /dev/null +++ b/app/api/auth/validate/route.ts @@ -0,0 +1,35 @@ +import { NextRequest, NextResponse } from 'next/server'; +import jwt, { JwtPayload } from 'jsonwebtoken'; + + +interface ValidateRequest { + token: string; +} + +export async function POST(request: NextRequest) { + try { + const body: ValidateRequest = await request.json(); + const { token } = body; + + // Ensure JWT_SECRET is defined + if (!process.env.JWT_SECRET) { + throw new Error('JWT_SECRET is not defined'); + } + + // Verify JWT + const decoded = jwt.verify(token, process.env.JWT_SECRET) as JwtPayload & { id: string }; + + if(!decoded.account_secret) { + return NextResponse.json({ error: 'Invalid token' }, { status: 400 }); + } + + if(decoded.account_secret !== process.env.ACCOUNT_SECRET) { + return NextResponse.json({ error: 'Invalid token' }, { status: 400 }); + } + + + return NextResponse.json({ message: 'Valid token' }); + } catch (error: any) { + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} \ No newline at end of file