Angularjs 如何从couchbase服务器执行用户名和哈希密码匹配的查询
当用户输入用户名和密码的详细信息时,根据查询执行的详细信息和用户登录,选择查询登录页面。这里的密码是用bycryptjs加密的,谁能帮我写一个哈希密码查询Angularjs 如何从couchbase服务器执行用户名和哈希密码匹配的查询,angularjs,node.js,couchbase,Angularjs,Node.js,Couchbase,当用户输入用户名和密码的详细信息时,根据查询执行的详细信息和用户登录,选择查询登录页面。这里的密码是用bycryptjs加密的,谁能帮我写一个哈希密码查询 Model.postUser = function(data, callback) { var statement = "SELECT uName,fName,lName " + " FROM `" + con
Model.postUser = function(data, callback)
{
var statement = "SELECT uName,fName,lName " +
" FROM `" + config.couchbase.bucket + "` AS users " +
"WHERE uName = '"+ data.uName +"'pwd = '"+ bcrypt.hashSync(data.pwd, 10) +"' ";
var query = N1qlQuery.fromString(statement);
db.query(query, function(error, result)
{
if(error)
{
return callback(error, null);
}
callback(null, result);
}
);
};
//This is an insert function for saving data in database.
Model.save = function(data, callback)
{
var jsonObject = {
uName : data.uName,
pwd : bcrypt.hashSync(data.pwd, 10),
pin : data.pin,
cpin : data.cpin,
fName : data.fName,
lName : data.lName
}
var documentId = data.document_id ? data.document_id : uuid.v4();
db.insert(documentId, jsonObject, function(error, result) {
//password validation using bcrypt
db.get(documentId,jsonObject,function(error, result) {
if(error) {
callback(error, null);
return;
}
callback(null, {message: "success", data: result});
});
}
您不需要“解密”密码散列,您需要散列您想要检查的内容并进行比较,或者使用bcrypt您可以使用
compare
方法。在上面的代码中,这两个函数都是不同的。如何比较散列控制台.log(“密码匹配->”+bcrypt.compareSync(data.pwd,result[0].pwd));