Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何从couchbase服务器执行用户名和哈希密码匹配的查询_Angularjs_Node.js_Couchbase - Fatal编程技术网

Angularjs 如何从couchbase服务器执行用户名和哈希密码匹配的查询

Angularjs 如何从couchbase服务器执行用户名和哈希密码匹配的查询,angularjs,node.js,couchbase,Angularjs,Node.js,Couchbase,当用户输入用户名和密码的详细信息时,根据查询执行的详细信息和用户登录,选择查询登录页面。这里的密码是用bycryptjs加密的,谁能帮我写一个哈希密码查询 Model.postUser = function(data, callback) { var statement = "SELECT uName,fName,lName " + " FROM `" + con

当用户输入用户名和密码的详细信息时,根据查询执行的详细信息和用户登录,选择查询登录页面。这里的密码是用bycryptjs加密的,谁能帮我写一个哈希密码查询

    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));