Cantilever-Labs/controllers/auth.js

80 lines
2.0 KiB
JavaScript

const bcrypt = require('bcryptjs') ;
const User = require('../models/User') ;
module.exports.postSignup = async (req , res , next) => {
try
{
let firstName = req.body.firstName || " " ;
let lastName = req.body.lastName || " " ;
let email = req.body.email ;
let phoneNumber = req.body.phoneNumber ;
let password = req.body.password ;
let user = await User.findOne({email:email}) ;
if(user)
{
res.json({
message:"User already exist" ,
type:"error"
})
}
else
{
const hashedPass = await bcrypt.hash(password , 12) ;
user = new User({
firstName : firstName ,
lastName : lastName ,
email : email ,
password : hashedPass ,
phoneNumber : phoneNumber
}) ;
user = await user.save() ;
res.json({
message:"Successfully signed Up" ,
type:"success"
})
}
}
catch(err)
{
console.log(err);
}
} ;
module.exports.postSignin = async (req , res , next) => {
try
{
let email = req.body.email ;
let password = req.body.password ;
let user = await User.findOne({email : email}) ;
if(user)
{
const isMathced = await bcrypt.compare(password , user.password) ;
if(isMathced)
{
res.json({
message:"Logged In" ,
type : "success"
})
}
else
{
res.json({
message:"email and password doesn't match" ,
type:"error"
})
}
}
else
{
res.json({
message:"No user with this email exists" ,
type : "error"
})
}
}
catch(err)
{
console.log(err);
}
}