You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
const userModel = require('../models/users');
|
|
const bcrypt = require('bcrypt');
|
|
const jwt = require('jsonwebtoken');
|
|
|
|
module.exports = {
|
|
create: function(req, res, next) {
|
|
|
|
userModel.create({ name: req.body.name, email: req.body.email, password: req.body.password }, function (err, result) {
|
|
if (err)
|
|
next(err);
|
|
else
|
|
res.json({status: "success", message: "User added successfully!!!", data: null});
|
|
|
|
});
|
|
},
|
|
|
|
authenticate: function(req, res, next) {
|
|
userModel.findOne({email:req.body.email}, function(err, userInfo){
|
|
if (err) {
|
|
next(err);
|
|
} else {
|
|
|
|
if(userInfo != null && bcrypt.compareSync(req.body.password, userInfo.password)) {
|
|
|
|
const token = jwt.sign({id: userInfo._id}, req.app.get('secretKey'), { expiresIn: '1h' });
|
|
|
|
res.json({status:"success", message: "user found!!!", data:{user: userInfo, token:token}});
|
|
|
|
}else{
|
|
|
|
res.json({status:"error", message: "Invalid email/password!!!", data:null});
|
|
|
|
}
|
|
}
|
|
});
|
|
},
|
|
|
|
}
|