i'm trying check entered username , password stored in database. solution not correct , think there might better code.
here far:
function login (username, password, callback) { var query = "select * users username = ?"; connection.query(query, [username], function (err, results) { if (err) return callback(err); if (results.length === 0) return callback(); var user = results[0]; if (!bcrypt.comparesync(password, user.password)) { return callback(); } callback(null, { id: user.id.tostring(), }); }); } app.get('/salam', function (req, res) { var username = 'mahdi'; var originalpassword = 'a'; login(username , originalpassword,function (callback) { console.log(callback); }); });
in code, console.log(callback);
returns null, usernames , passwords correct. how can fix this?
in success callback
function, having 2 arguments in error callback, 1 argument.
in error
, success
case, value of first parameter null
, in if (!bcrypt.comparesync(password, user.password)) {
case, value of first argument undefined
there no value being passed argument.
suggestion: use first argument boolean
(false
or true
) , based on value, handle callback.
function login(username, password, callback) { var query = "select * users username = ?"; connection.query(query, [username], function(err, results) { if (err) return callback(false); if (results.length === 0) return callback(); var user = results[0]; if (!bcrypt.comparesync(password, user.password)) { return callback(false); } callback(true, { id: user.id.tostring(), }); }); } app.get('/salam', function(req, res) { var username = 'mahdi'; var originalpassword = 'a'; login(username, originalpassword, function(success, value) { if (success) { console.log(value); } }); });
Comments
Post a Comment