Kohana认证模块未登录用户


Kohana authentication module not loging in users

我正在尝试让登录在Kohana工作,但到目前为止它未能登录用户。

我已经成功地创建了新用户,所以我已经设置了所有的表。

我对登录页面的看法如下,

<td style="vertical-align:top">
            <div id="log_in">
                <form class="pure-form pure-form-stacked" action="/kohana-blog/index.php/signup/login" method="post">
                    <fieldset>
                    <legend>Log In</legend>
                    <label for="username">Username</label>
                    <input id="username" name="username" type="text" placeholder="nonamedude" required>
                    <label for="password">Password</label>
                    <input id="password" name="password" type="password" placeholder="Password" required>
                    <label for="remember" class="pure-checkbox"></label>
                    <input id="remember" type="checkbox"> Remember me
                    <br>
                    <button type="submit" class="pure-button notice">Log In</button>
                    </fieldset>
                </form>
            </div>
        </td>

我的控制器如下

$this->template->content = View::factory('signup/home')
            ->bind('message', $message);
        if (HTTP_Request::POST == $this->request->method()) 
        {
            $remember = array_key_exists('remember', $this->request->post()) ? (bool) $this->request->post('remember') : FALSE;
            $remember = FALSE;
            $user = Auth::instance()->login($this->request->post('username'), $this->request->post('password'), $remember);
            if ($user) 
            {
                Request::current()->redirect('signup/home');
            } 
            else 
            {
                $message = "login failed";
            }
        }

我不明白为什么它不验证用户。我的auth.php如下:

'driver'       => 'orm',
    'hash_method'  => 'sha256',
    'hash_key'     => 'somerandomstring',
    'lifetime'     => 1209600,
    'session_type' => Session::$default,
    'session_key'  => 'auth_user',

此外,roles_users表有正确的值,users表有来自表单的数据。

是否有一种方法来调试这个找到问题的根源?

首先确保您的用户在roles_users表中分配了login角色。
默认情况下,如果您没有此角色,则无法登录。
顺便说一句。这样写更简洁:

$post = $this->request->post();
$user = Auth::instance()->login($post['email'], $post['password'], isset($post, 'remember'));