我在身份验证组件方面遇到了一些问题。每次我尝试使用用户登录时(我已经使用正确的参数检查了数据库中是否存在用户),我的应用程序都会向我抛出登录失败消息。
我有两个模型,Accounts 和Employees,其中一个Employee 属于Account,一个Account hasOne Employee。我用saveAssociated()保存数据,数据库中一切正常,但无法登录。
我一直在寻找解决方案,并一次又一次地重复 CookBook 教程,但我找不到我做错了什么。
这是一些代码:
class AppController extends Controller {
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'loginAction' => array('controller' => 'accounts', 'action' => 'login'),
'loginRedirect' => array('controller' => 'snippets', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'snippets', 'action' => 'index'),
'authorize' => array('Controller')));
public function beforeFilter() {
$this->Auth->loginAction = array('controller' => 'accounts', 'action' => 'login');
$this->Auth->authenticate = array(
AuthComponent::ALL => array(
'userModel' => 'Account',
'fields' => array('username' => 'username', 'password' => 'password')),
'Basic',
'Form');
$this->Auth->allow('index', 'view');
我的登录功能:
public function login() {
if($this->request->is('post')) {
if ($this->Auth->login()) {
$this->Session->setFlash(__('Welcome'));
return $this->redirect(array('controller' => 'snippets', 'action' => 'index'));
//return $this->redirect($this->Auth->redirect());
}
$this->Session->setFlash(__('Wrong password or email'), 'default', array(), 'auth');
}
}
拜托,有人可以告诉我我做错了什么吗?如果您需要查看其他代码部分,请告诉我。
谢谢!