Модуль аутентификации Kohana возвращает значение null при использовании Auth :: instance () -> login - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь использовать модуль Auth с драйвером ORM в Kohana 3.3.0, но единственное, что я могу сделать, это вставить новых пользователей в базу данных.Я не могу войти с ними.

                $user = ORM::factory('User')->create_user($user_data, array(
                'username',
                'password')
            );
            $user->save();
            $user_id = !empty($user->id) ? $user->id : 0;
            $user_type = !empty($_POST['admintype'] ? $_POST['admintype'] : 3);
            //$user->add('roles', ORM::factory('Role', array('name' => 'login')));
            $user->add('roles', $user_type);

пользователь создан, но когда я пытаюсь войти, он возвращает null

            $user_name =  !empty($_POST['username']) ? $_POST['username'] : '';
        $userpassword = !empty($_POST['userpassword']) ? ($_POST['userpassword']) : '';           

        $user = Auth::instance()->login($user_name, $userpassword);

1 Ответ

0 голосов
/ 28 февраля 2019

Auth->login() возвращает состояние входа в систему , поэтому оно должно быть:

$auth = Auth::instance();
if($auth->login($user_name, $userpassword)) {
  $user = $auth->get_user()
} else {
  throw HTTP_Exception::factory('403', 'Login fail');
}

И лучше использовать встроенные функции кохана для получения значений из массивов :

$user_name =  Arr::get($_POST,'username','');

или в контроллере использовать :

$user_name =  $this->request->post('username','')
...