2014-01-11 46 views
0

可能我在這裏丟失了一些東西。NodeJS - 護照密碼在數據庫中顯示爲純文本

得到了一個Express服務器與MongoDB,我使用護照進行身份驗證。 我正在使用其中一個標準代碼示例進行註冊,它似乎沒問題,但是我可以在我的數據庫中看到我在密碼字段(純文本)中鍵入的密碼。
我希望它被加密...

我做錯了什麼?

+0

的MongoDB不把密碼從其他文本有什麼不同。你將不得不自己處理加密。你可以看看這個[問題](http://stackoverflow.com/questions/6951563/storing-passwords-with-node-js-and-mongodb)。答案試圖解決類似的問題。並且存儲密碼不是一個好主意。更好地存儲他們的鹽漬散列。 – user568109

+0

基本上mongodb只是提供存儲。您必須使用bcrypt或其他庫來處理安全性。 – user568109

回答

1

你必須自己散列密碼。下面是如何使用brcypt做到這一點:

function hashPassword (password) { 
    return bcrypt.hashSync(password, bcrypt.genSaltSync()); 
} 

您保存用戶數據庫簡單地調用該函數,像這樣如此前:

user.password = hashPassword(thepassword);