在我的AppController我有這樣的設置CakePHP的2.0的Acl +驗證+自定義的用戶名外地
public $components = array(
'Acl',
'Auth' => array(
'authorize' => array(
'Actions' => array('actionPath' => 'controllers')
)
),
'Session',
'DebugKit.Toolbar'
);
在我的用戶模式,我沒有「用戶名」欄,我有「電子郵件」,所以我改變了$組件配置到:
public $components = array(
'Acl',
'Auth' => array(
'authorize' => array(
'Actions' => array('actionPath' => 'controllers')
),
'authenticate' => array(
'Form' => array(
'fields' => array(
'username' => 'email', 'password' => 'password'
)
)
)
),
'Session',
'DebugKit.Toolbar'
);
以這種方式我沒有得到錯誤「模型沒有字段'用戶名'」但我的登錄被拒絕。 所以我換回到以前的配置,改變了表
ALTER TABLE users CHANGE COLUMN username email VARCHAR(45) NOT NULL UNIQUE;
而且它的工作..所以這有什麼錯我以前的配置嗎?
您顯示的查詢是必需的,因爲您正在更改'用戶名'專欄到'email',這正如你所描述的你想要的那樣?如果這是一個粘貼錯誤,並且實際上是另一種方式,請確保您的視圖也具有'User.email'輸入字段,而不是複製/粘貼教程中的User.username示例。 – Oldskool 2013-03-26 12:20:21
我不明白爲什麼「身份驗證」配置沒有對用戶運行任何查詢來檢查憑據並立即拒絕身份驗證 – kappa 2013-03-26 13:37:38