我正在节点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'另外,如果情况存在,任何人都可以建议我如何将我的登录详细信息与案例进行比较。谢谢。
答案 0 :(得分:0)
对于电子邮件/用户名,将数据保存为DB中的UPPERCASE或LOWERCASE并相应地查找。此外,请确保您已在“电子邮件/用户名”
上设置了唯一索引标志对于密码,请不要将其保存为字符串,否则会导致安全漏洞。制作密码的哈希值,然后将它们存储在DB中。
在使用node.js时,您可以使用Bcrypt Module。它有一个内置的哈希密码方法,然后比较它们。