2011-05-16 74 views
0

我有許多與cakephp驗證開發有關的問題。爲此,我試圖使用名爲reviewers的表,當然,它包含用戶名和密碼字段。CakePHP驗證與用戶問題以外的驗證表

我檢查,並從登錄表單發送正確的數據(用戶名和密碼)。

文件app_controller.php包含:

class AppController extends Controller { 
var $components = array('Auth', 'Session', 'Cookie', 'P28n'); 

    function beforeFilter() { 

     $this->Auth->authenticate = ClassRegistry::init('Reviewer'); 

     Security::setHash('sha1'); // or sha1 or sha256 
     $this->Auth->userModel = 'Reviewers'; 
    $this->Auth->fields = array('username' => 'username', 'password'=>'password'); 
    $this->Auth->loginRedirect = array('controller' => 'reviewers', 'action' => 'view'); 

    } 

如何檢查和調試問題?我得到的錯誤是用戶名和密碼組合不正確。

是什麼驅使我瘋狂的是,我已經alredy開發simular功能之前,它的工作沒有問題........

請幫助。

更新:與cakephp debuggint工具,它看起來像auth組件永遠不會被調用。

+0

你是否覆蓋你的beforeFilter()函數在控制器的地方? 確保調用parent :: beforeFilter(); – Matt 2011-05-16 14:24:21

回答

0

我有類似的問題與蛋糕1.3,它似乎認證組件的自動散列不同於保存您的用戶時所做的散列。

我結束了這個解決方案: 我在保存之前在用戶控制器中添加了這個。

$this->data['User']['password'] = Security::hash($this->data['User']['password']); 

現在它工作正常......也許這將有所幫助。

+0

不,不變。但是,讓我感到困惑的是,如果在調試打開的情況下,我無法在sql dump中看到創建cakephp的sql查詢。所以,對我來說,它看起來像auth控制器根本沒有被調用。 – user198003 2011-05-16 11:05:54