我是 cakePHP 的新手,我已经阅读了他们的文档,并且正在关注他们的简单身份验证示例。我还广泛搜索(包括本网站上的答案)来寻找我的问题的答案。
我正在使用 cakePHP 2.0,我的 UsersController 的登录功能如下所示:
function login() {
if ($this->request->is('post')) {
if ($this->Auth->login(/*$this->request->data*/)) {
$this->redirect($this->Auth->redirect());
}else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
}
我的 AppController 看起来像这样:
public $components = array(
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'pages', 'action' => 'display'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'display')
)
);
public function beforeFilter() {
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
}
我的用户模型:
class User extends AppModel {
public $name = "User";
}
和登录表单:
echo $this->Session->flash('auth');
echo $this->Form->create('User', array('action' => 'login'));
echo $this->Form->input('username');
echo $this->Form->input('password');
echo $this->Form->end('Login');
问题是它没有登录用户。当调用 $this->Auth->login() 时没有 $this->request->data 作为参数,会话中没有写入任何内容,页面只是刷新。但是当您提供 $this->request->data 它可以工作时,凭据将写入会话并且我被正确重定向。但是我注意到您可以使用 $this->Auth->login($this->request->data) '登录'任何人,即使他们不存在于数据库中。除此之外,如果我输入了错误的凭据,什么也不会发生,不会显示任何闪烁消息。
我不想做任何特别的事情,我想要的只是能够登录用户。我有一个简单的用户表,其中包含用户名和密码字段,我已经按照他们的示例阅读了他们的文档,但我仍然没有尝试过已经奏效了。
如果我没有提供回复所需的所有信息,我深表歉意。任何帮助是极大的赞赏。