add external validatepassword function

This commit is contained in:
2020-05-15 22:57:32 +02:00
parent 7b3c262140
commit 7c67c39ca7

View File

@@ -91,11 +91,28 @@ app.all("/*", function (req, res, next) {
} else return next(); } else return next();
}); });
const validatePassword = (email, password) => {
return new Promise(function (resolve, reject) {
connection.query(`SELECT * from user WHERE email = ${mysql.escape(email)} AND deactivated = 0`, function (err, rows) {
if (err) {
return reject("error querying the database - Please contact sys admin");
}
if (!rows.length) {
return resolve(false);
}
if (!bcrypt.compareSync(password, rows[0].password)) {
return resolve(false);
}
return resolve(rows[0]);
});
});
}
passport.use('local-login', new LocalStrategy({ passport.use('local-login', new LocalStrategy({
usernameField: "email", usernameField: "email",
passwordField: "password", passwordField: "password",
passReqToCallback: true passReqToCallback: true
}, function (req, email, password, done) { }, async function (req, email, password, done) {
if (DEBUG) { if (DEBUG) {
if (email === "test" && password === "test") { if (email === "test" && password === "test") {
return done(null, { return done(null, {
@@ -107,19 +124,18 @@ passport.use('local-login', new LocalStrategy({
}); });
} else return done(null, false); } else return done(null, false);
} }
email = mysql.escape(email); try {
connection.query(`SELECT * from user WHERE email = ${email} AND deactivated = 0`, function (err, rows) { let user = await validatePassword(email, password);
if (err) { if (user) {
return res.status(static.INTERNAL_SERVER_ERROR).send("error querying the database - Please contact sys admin"); return done(null, user);
} }
if (!rows.length) { else {
return done(null, false); return done(null, false);
} }
if (!bcrypt.compareSync(password, rows[0].password)) { } catch (e) {
console.log(e);
return done(null, false); return done(null, false);
} }
return done(null, rows[0]);
})
} }
)); ));