2013-05-19 22 views
0

我需要用戶在編輯某些信息之前確認其當前密碼。將它與會話身份驗證信息進行比較應該是最好的方法,但當前密碼不存儲在身份驗證會話中。我能想到解決這個問題的唯一方法是通過id找到用戶並檢索他們當前的密碼進行比較,但我認爲查詢太昂貴了。有沒有更好的辦法?如何以最便宜的方式確認用戶密碼

+0

你真的不應該太在乎成本。它們在更改密碼等用例中完全不相關。提示:您正在尋找的是使用''current'=> true'實現的:http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/ - 作爲一種行爲解。 – mark

回答

3

首先,我不會按照自己想要的方式來回答問題,相反,如果您願意做編輯,刪除等操作,我會幫助您提升升級用戶「角色」或「權力」的適當標準等。等。等。

  1. 您不應該使用會話來存儲密碼。 (永遠,永遠!)

  2. 當做用戶查找,密碼存儲,登錄,你有什麼,對數據庫做一個查詢 - 這不是像你說的那樣「昂貴」。我有一個數據庫2000以上(這是相對較小,非常小......)行,它是處理,甚至沒有打破汗!

  3. 不要使用密碼破解的密碼功能,如MD5,SHA [1,2]。這些功能不是專門爲密碼存儲設計的。相反,使用crypt函數特別是使用Blowfish密碼的Bcrypt。這是爲了正確存儲密碼而作出的。

+0

你的答案是我想要的方式..謝謝 –