0

我试图让登录在 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 表具有来自表单的数据。

有没有办法调试它以找到问题的根源?

4

1 回答 1

1

首先确保您的用户在表login中分配了角色。 默认情况下,如果您没有此角色,您将无法登录。 顺便提一句。写起来更干净:roles_users

$post = $this->request->post();
$user = Auth::instance()->login($post['email'], $post['password'], isset($post, 'remember'));
于 2013-06-18T10:11:06.520 回答