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 に答える