如何根据节点js中的区分大小写获取详细信息

时间:2016-11-08 04:35:51

标签: node.js mongodb mongoose

我正在节点js中为登录编写登录呼叫,我遵循以下方式,

    exports.signin = function (req, res) {
    var student = new Student(req.body);
    student.status = '1';
    var data = {},
    item = {
         'username' : student.username ,
         'password' : student.password 
    };console.log(item)
    Student.find(item,function (err, result) {
        if (err) {
            return err;
        } if(result != []){console.log(result)
            data = { status: true, error_code: 0,result:result, message: 'Login successfull' };
        }else{
            data = { status: false, error_code: 1, message: 'Usernme or password is wrong' };

        }
 res.json(data);
    });
}

我在这里比较用户名和密码。例如,我的用户名和密码就像

    username: Arnold
    password: Arnold123
不幸的是,如果我这样做也是接受,

    username: ArnOld
    password: ArnoLd123

但是当我进行测试时,它已经被小型的' a'另外,如果情况存在,任何人都可以建议我如何将我的登录详细信息与案例进行比较。谢谢。

1 个答案:

答案 0 :(得分:0)

对于电子邮件/用户名,将数据保存为DB中的UPPERCASE或LOWERCASE并相应地查找。此外,请确保您已在“电子邮件/用户名”

上设置了唯一索引标志

对于密码,请不要将其保存为字符串,否则会导致安全漏洞。制作密码的哈希值,然后将它们存储在DB中。

在使用node.js时,您可以使用Bcrypt Module。它有一个内置的哈希密码方法,然后比较它们。