57 lines
2.0 KiB
JavaScript
57 lines
2.0 KiB
JavaScript
const UserModel = require('../../src/users/users.model');
|
|
const crypto = require('crypto');
|
|
const funcs = require("../../common/functions/funcs");
|
|
exports.hasAuthValidFields = (req, res, next) => {
|
|
let errors = [];
|
|
|
|
if (req.body) {
|
|
if (!req.body.email) {
|
|
errors.push('Missing email field');
|
|
}
|
|
if (!req.body.password) {
|
|
errors.push('Missing password field');
|
|
}
|
|
|
|
if (errors.length) {
|
|
return res.status(400).send({errors: errors.join(',')});
|
|
} else {
|
|
return next();
|
|
}
|
|
} else {
|
|
return res.status(400).send({errors: 'Missing email and password fields'});
|
|
}
|
|
};
|
|
exports.isPasswordAndUserMatch = (req, res, next) => {
|
|
UserModel.findByEmail(req.body.email.trim())
|
|
.then((user)=>{
|
|
if(!user){
|
|
res.status(404).send({errors: 'Invalid Login information'});
|
|
}else{
|
|
let passwordFields = user.password.split('$');
|
|
let salt = passwordFields[0];
|
|
let fcm = req.body.fcm;
|
|
let hash = crypto.createHmac('sha512', salt).update(req.body.password).digest("base64");
|
|
// console.log(hash);
|
|
// console.log(passwordFields[1]);
|
|
if (hash === passwordFields[1]) {
|
|
req.body = {
|
|
userId: user.id?user.id:"",
|
|
email: user.email,
|
|
permissionLevel: user.userType,
|
|
firstname: user.firstname ,
|
|
lastname: user.lastname ,
|
|
country: user.country ,
|
|
mobile: user.mobile ,
|
|
webAccess: 0
|
|
};
|
|
return next();
|
|
|
|
|
|
} else {
|
|
return res.status(400).send({errors: 'Invalid Login information'});
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|