$ This-> Auth-> User (); нулевой - PullRequest
0 голосов
/ 17 мая 2018

Я новичок в торте php.Я использую CakePHP 3.6.2 в Linux Ubuntu.Я использую компонент авторизации CakePHP.В то время как я даю правильные учетные данные, он перенаправляет обратно на страницу входа, в противном случае появляется сообщение об ошибке «неверное имя пользователя и пароль».Я отлаживаю и проверяю детали, в то время как я даю правильные учетные данные.Он устанавливает "$ this-> Auth-> setUser ($ user);"правильно.Но после перенаправления "вернуть $ this-> redirect ($ this-> Auth-> redirectUrl ());"$ this-> Auth-> User () имеет значение Null и перенаправляет обратно на страницу входа.

Мой код

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" работают нормально.Но внутри этого проекта только сессия не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...