brawlset/app/app/api/auth/signin/route.ts

46 lines
1.2 KiB
TypeScript

import { NextResponse, NextRequest } from 'next/server'
import { createToken } from '@/lib/jwt'
import { createHmac } from "crypto"
import { db } from '@/lib/db'
import { logging } from '@/lib/logging'
const secret = process.env.PASSWORD_SECRET ? process.env.PASSWORD_SECRET : ""
export async function POST(req: NextRequest) {
try {
const { email, password } = await req.json()
const user = await db.utilisateurice.findFirst({
where: {
email
}
})
if (user !== undefined){
if(createHmac('sha256',secret).update(password).digest('hex') == user!.password) {
const token = createToken({data: {username: user!.username, admin: user!.admin, id: user!.id}, maxAge: 60*60*24*7})
logging("User " + user!.username + " has connected.")
return NextResponse.json({"JWT": token},{
status: 200,
});
} else {
return NextResponse.json({error: "Wrong credentials"},{
status: 401,
});
}
} else {
return NextResponse.json({error: "Wrong credentials"},{
status: 401,
});
}
} catch (error) {
console.log(error)
return NextResponse.json(
{ error: "Failed, check console" },
{
status: 500,
}
);
}
}