我已经和这个斗争了一段时间。我有一个需要身份验证的 CakePHP 2.0 应用程序,由于它必须使用另一种语言,我放弃了具有“用户名”和“密码”约定的自动“用户”,并制作了自己的数据库表:
utilizatori('id', 'nume', 'parola')
在我的AppController中,我定义了以下内容,如果我理解正确,应该覆盖默认的 CakePHP 关联并使其使用我的新结构:
class AppController extends Controller {
var $components = array('Session',
'Auth' => array('Form' => array(
'userModel' => 'Utilizator',
'fields' => array('username' => 'nume', 'password' => 'parola'),
'loginAction' => array('controller' => 'utilizatori', 'action' => 'login'),
'loginRedirect' => array('controller' => 'categorii', 'action' => 'admin_index'))));
function beforeFilter() { }
}
在我的UtilizatoriController我有以下登录功能:
function login()
{
$this->layout = 'admin';
debug($this->data);
debug(Security::hash($this->data['Utilizator']['parola']));
debug($this->Auth->login());
/*more here but don't think it's important*/
数据调试得出预期值,让我们假设:
**data['Utilizator']['nume']** = 'Cosmin'
**data['Utilizator']['parola']** = 'Cosmin'
密码哈希调试产生了我也手动插入数据库的预期哈希,但登录函数返回false。
我不确定下一步该做什么,任何反馈将不胜感激。另外,有没有办法访问发送到$this->Auth->login()的内容?
谢谢