2016-11-08 66 views
0

我寫在節點JS的登錄登錄呼叫,我也跟着下面的方式,如何獲得基於案例敏感者在節點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); 
    }); 
} 

我在這裏比較的用戶名和password.For的詳細例子,我的用戶名和密碼都是一樣

username: Arnold 
    password: Arnold123 

不幸的是,如果我給這樣也被接受,

username: ArnOld 
    password: ArnoLd123 

但是當我測試的時候,它也使用小'a'登錄,所以任何人都可以告訴我如何比較我的登錄詳細信息和案例情況。謝謝。

回答

0

對於電子郵件/用戶名,請將數據保存爲數據庫中的大寫或小寫字母並進行相應查找。此外,請確保您已設置電子郵件/用戶名的唯一索引標誌

對於密碼,請勿以字符串形式保存,否則會導致安全漏洞。做一個密碼散列,然後將它們存儲在數據庫中。

當您使用node.js時,您可以使用Bcrypt Module。它有一個內置的密碼散列方法,然後再比較它們。