UNPKG

fauth-template

Version:
43 lines (35 loc) 1.04 kB
import { Request, Response } from "express"; import User from "@/models/user.model"; import { IFormData } from "@/types/mongodb"; import { createSession } from "@/session/session"; import { Payload } from "@/session/jwt"; import bcrypt from "bcryptjs"; export async function signinController(req: Request, res: Response) { const { email, password } = req.body as IFormData; const findUser = await User.findOne({ email }); if (!findUser) { res.status(404).json({ success: false, message: `email does not exist`, }); return; } const passwordMatched = await bcrypt.compare(password, findUser.password); if (!passwordMatched) { res.status(400).json({ success: true, message: "Incorrect password", }); return; } const { id, username } = findUser; const payload: Payload = { username, id, }; await createSession({ res, payload }); res.status(200).json({ success: true, message: `Welcone ${username}`, }); }