我想用下面的控制器动作登录,但我的登录尝试不停地进行故障(我得到的“无效的用户名和/或密码”消息)。我究竟做错了什么?我也试过在权威性文档Auth::instance()->login($user->username, $form->password);的例子给出的另一种方法,但我得到相同的结果。 Kohana的版本是2.3.4。

public function login() {
    $auth = Auth::instance();
    if ($auth->logged_in()) {
        url::redirect('/account/summary');
    }

    $view = new View('login');
    $view->username = '';
    $view->password = '';

    $post = $this->input->post();
    $form = new Validation($post);
    $form->pre_filter('trim', 'username')
         ->pre_filter('trim', 'password')
         ->add_rules('username', 'required');

    $failed = false;
    if (!empty($post) && $form->validate()) {
        $login = array(
            'username'  => $form->username,
            'password'  => $form->password,
        );
        if (ORM::factory('user')->login($login)) {
            url::redirect('/accounts/summary');
        } else {
            $view->username = $form->username;
            $view->message = in_array('required', $form->errors()) ?
                             'Username and password are required.' :
                             'Invalid username and/or password.';
        }
    }

    $view->render(true);
}
有帮助吗?

解决方案

想通了我的问题......东西在我的注册过程中丢失,因为它创建用户记录,但没有作用到用户ASSOC记录。登录需要登录到特定的角色,或者它甚至不会有一个有效的用户名和密码的工作。手动插入记录让我登录,所以我就不得不去维护我的注册操作了一下。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top