我正在尝试检查sqlite数据库中的sha256散列是否与用户发送到我的NodeJS服务器的密码的sha256散列匹配。Auth()函数应返回true或false。如何访问if语句中的变量"refpw“?
function Auth(username, password){
db.get("SELECT passwordsha256 FROM users WHERE username=?", username, (err, row) => {
var refpw = row.passwordsha256
})
if(sha256(password) === refpw){return true}else{return false}
}
发布于 2018-03-15 03:37:27
您要做的是将异步方法更改为同步方法。
我建议在Auth方法中传入一个回调,然后在任何时候调用Auth方法时,都会传入一个回调函数。
function Auth(username, password, callback){
db.get("SELECT passwordsha256 FROM users WHERE username=?", username, (err, row) => {
var refpw = row.passwordsha256;
callback(sha256(password) === refpw);
})
}然后像这样调用Auth
Auth(username, password, (success) => {
if (success) {
//do something here
}
});https://stackoverflow.com/questions/49285938
复制相似问题