NextJS Login

PHOTO EMBED

Wed Feb 07 2024 14:40:15 GMT+0000 (Coordinated Universal Time)

Saved by @Hritujeet

import connectDb from "@/middleware/mongoose";
import User from "@/models/User";
import bycrypt from 'bcryptjs'
import jwt from 'jsonwebtoken'

const handler = async (req, res) => {
    try {
        if (req.method == 'POST') {
            const {email, password} = req.body;

            let myUser = await User.findOne({email})

            if (myUser) {
                let passwordCompare = await bycrypt.compare(password, myUser.password)
                if (passwordCompare) {
                    let myToken = jwt.sign({name:myUser.name, email:myUser.email}, 'h1r2i3t4u5j6e7e7t8')
                    res.status(200).json({ success: true, msg: "success", myToken})
                } else {
                    res.status(404).json({ success: false, msg: "Invalid Credentials" })
                }
            } else {
                res.status(404).json({ success: false, msg: "Invalid Credentials" })
            }
        }
        else {
            res.status(400).json({ success: false, error: "Bad Request" })
        }
    } catch (error) {
        console.log('error')
        res.status(500).json({ success: false, error })
    }
};
export default connectDb(handler);
content_copyCOPY