2011-11-20 86 views
0

我目前正在使用我們可愛的框架的新版本。現在我在註冊的地方工作,AuthComponent自動密碼我的密碼,雖然手動顯式說明這已經在新版本中刪除。那麼這是一個核心錯誤還是我有錯?有沒有什麼特別的我的代碼,我只有兩個字段密碼和* confirm_password *我在我的驗證比較。但由於CakePHP的哈希密碼我不得不寫這樣的事情:CakePHP 2.0 AuthComponent自動哈希密碼

public function checkPasswords($data) { 
     $data = array_keys($data); 
     return $this->data['User'][$data[0]] === AuthComponent::password($this->data['User']['confirm_password']); 
    } 

,當我嘗試登錄,有密碼字段的心不是自動散列的主要問題occures。有人能幫我嗎?我不知道爲什麼AuthComponent在我的「註冊」函數中散列密碼並且不在我的「登錄」函數中?

回答

1

聽起來就像您使用的是不同版本的CakePHP。如果沒有明確地編碼,Version 2.0+絕對不會散列密碼;所以你使用的是1.x,或者你在密碼的其他地方散列了密碼。你確定將$ data傳遞給checkPasswords()的方法沒有做過散列嗎?

向我們展示register()函數,以便更好地理解問題。

+0

好的,這個題目可以關閉。我的失敗,omg。我真的錯過了 '$ data ['User'] ['password'] = AuthComponent :: password($ this-> request-> data ['User'] ['password']);' in my功能..很抱歉。 – Fortuna