Kohana 3: Модуль аутентификации

Я пытаюсь изучить модуль аутентификации Kohana, но метод входа в систему всегда возвращает false.

Контроллер:

<?php defined('SYSPATH') OR die('No Direct Script Access');
class Controller_Auth extends Controller {
    public function action_index() {
        if($_POST) {
            $this->login();
        }

        $this->template = View::factory('login');
        echo $this->template;
    }

    private function login() {
    $user = ORM::factory('user');

        $data = array('username' => 'wilson', 'password' => '123');
        if(!$user->login($data)) {
            echo 'FAILED!';
        }
    }

    private function logout() {

    }
}    
?>

Модель:

<?php defined('SYSPATH')  or die('No direct script access.');
class Model_User extends Model_Auth_User {
}
?>

person Thomas    schedule 09.06.2010    source источник
comment
Пожалуйста, предоставьте все ваши файлы. Разобраться будет намного легче.   -  person devasia2112    schedule 22.09.2011


Ответы (2)


Ты делаешь это неправильно.

Чтобы войти в систему, сделайте что-то вроде этого:

$auth = Auth::instance();
if ($auth->login($_POST['username'], $_POST['password']))
{
      echo 'hello, '.$auth->$_POST['username'];
}
else
{
      echo 'login failed!';
}

Кроме того, раскомментируйте строку модуля авторизации в начальной загрузке вашего приложения:

'auth'       => MODPATH.'auth',       // Basic authentication
person yoda    schedule 10.06.2010

Я не добавлял правила для пользователя. Для получения дополнительной информации [см. эту ссылку] [1].

Спасибо, ребята, и извините за это :)

http://webcache.googleusercontent.com/search?q=cache:kXKFWswjDogJ:kerkness.ca/kowiki/doku.php%3Fid%3Dusing_the_auth_module_in_your_controllers+&cd=1&hl=en&ct=clnk&gl=us

public function action_signin()
{
    #If user already signed-in
    if(Auth::instance()->logged_in()!= 0){
        #redirect to the user account
        Request::instance()->redirect('account/myaccount');     
    }

    $content = $this->template->content = View::factory('signin');  

    #If there is a post and $_POST is not empty
    if ($_POST)
    {
        #Instantiate a new user
        $user = ORM::factory('user');

        #Check Auth
        $status = $user->login($_POST);

        #If the post data validates using the rules setup in the user model
        if ($status)
        {       
            #redirect to the user account
            Request::instance()->redirect('account/myaccount');
        }else
        {
                            #Get errors for display in view
            $content->errors = $_POST->errors('signin');
        }

    }
}
person Thomas    schedule 10.06.2010
comment
Удалил мой отрицательный голос, потому что я нашел копию кеша Google и внес изменения. - person William; 11.10.2012