我正在尝试检查我的 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}
}
最佳答案
您想要做的是将异步方法更改为同步方法。
我建议向您的 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
}
});
关于javascript - 如何在 db.get 之外获取 node-sqlite3 查询的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49285938/