Kohana auth模块返回null,同时使用Auth :: instance() - > login

问题描述 投票:0回答:1

我想在Kohana 3.3.0中使用带有ORM驱动程序的Auth模块,但我唯一能做的就是在数据库中插入新用户。我不能用他们登录。

                $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);
php kohana
1个回答
1
投票

Auth->login() returns login status,所以它应该是:

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

并且更好地使用本地kohana函数来get values form arrays

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

或在控制器use

$user_name =  $this->request->post('username','')
© www.soinside.com 2019 - 2024. All rights reserved.