我是蛋糕php的新手。 我在linux ubuntu中使用cakephp 3.6.2。 我使用cakephp auth组件。 虽然我提供了正确的凭据,但它会重定向回登录页面,否则会显示错误消息“无效的用户名和密码”。 我提供正确的凭据时调试并检查详细信息。设置“$ this-> Auth-> setUser($ user);”正确。 但重定向后“返回$ this->重定向($ this-> Auth-> redirectUrl());” $ this-> Auth-> User()为空,并重定向回登录页面。
我的代码
AppController.php
public function initialize(){
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password']
]
],
'loginAction' => ['controller' => 'Users', 'action' => 'login']
]);}
UserCOntroller.php
public function login()
{
if ($this->request->is('post')) {
$user = $this->Auth->identify();
if ($user) {
$this->Auth->setUser($user);
debug($this->Auth->User()); //contain user details correctly
debug($this->redirect($this->Auth->redirectUrl())); // //contain userdetails correctly
return $this->redirect($this->Auth->redirectUrl());
}
$this->Flash->error(__('Invalid username or password, try again'));
}
}
public function logout()
{
return $this->redirect($this->Auth->logout());
}
user.php的
protected function _setPassword($password)
{
if (strlen($password) > 0) {
return (new DefaultPasswordHasher)->hash($password);
}
}
我打印phpinfo()会话已启用。 “var / www / html”下的其他项目正常工作。但是在这个项目中只有会话不起作用。