0

ここに私の問題があります:

次のテーブル users があります。

ID ユーザー名 電子メール パスワード

また、モデルユーザーであり、サインアップに関してはすべて問題ありません。

ログインしたいときは、ここに私のビューがあります:

@layout('main')

@section('content')


@if(Session::has('login_errors'))

<div class='alert alert-error'>Wrong ID</div>

@endif

{{Form::open('user/login', 'POST', array('class' => 'well inline-form'))}}

{{Form::token()}}


{{Form::text('username', Input::old('username'), array('class' => 'input-large', 'placeholder' => 'email'))}}
{{Form::password('password', array('class' => 'input-large', 'placeholder' => 'Mot de passe'))}}

{{Form::submit('Login', array('class'=>'btn btn-primary'))}}

{{Form::close()}}

@endsection

そして、これが私がコントローラーで行うことです

public function action_login()
{
    if(Auth::check()){return Redirect::to('user');}

    if(Request::method() == 'POST')
    {

        $credentials = array('username' => Input::get('username'), 'password' => Input::get('password'));

        if(Auth::attempt($credentials))
        {
            return Redirect::to('user');
        }

        else
        {

            return Redirect::to('user/login')->with_input()->with('login_errors', true);

        }
    }


    Section::inject('title', 'Login');

    return View::make('user.login');

} 

機能するはずですが、機能しません。

バグは次のとおりです。ログインボタンをクリックすると、フォームがコントローラーに渡されて読み取られます。Input::get('username')、Input::get('password') が正しく、db に登録されていることはわかっています。

問題は次のとおりです。メール/パスワードが正しいのに、Auth を取得できず、メッセージが間違った IDで表示されます。私は明確だったと思います...

あなたが知っておくべきこと:

config の Auth.php を変更していないので、ユーザー名は email です

サインアップ時にパスワードをハッシュします: 'password' => Hash::make(Input::get('password'))

編集と解決策

わかりました、私はそれを理解しました!

初めに :

  • 私は Php 5.3.6 を使用し、ハッシュには少なくとも 5.3.7 が必要です
  • その後、自分のデータベースでパスワードが最大 40 文字であることに気付きました。私はばかだと思います

それが誰かを助けることを願っています/スレッド

4

1 に答える 1

0

1 つには、Controller::detect() は欠陥のあるアプローチであり、近道をとってそのメソッドを使用しないように多くの場所で提唱されています。必要なすべてのルートを指定します。読みやすくなるだけでなく、リクエストで何が起こっているのかを理解しやすくなります。

認証構成を変更していない場合、フォームから提供されたユーザー名は誰かの EMAIL である必要があることを意味するはずです。したがって、これが事実であることを確認してください。ユーザー名と照合する場合は、必ずそれも設定してください。

さらに、より多くの情報が必要です。うまくいかないことを実際に開始したわけではなく、うまくいかないというだけです。正確には、何がうまくいかないのですか?上記の私のポイントに従っていることを確認してください。まだ機能していません。さらに情報/コードが必要です。Atm、あなたのバグ レポートにはかなり欠陥があります。

于 2013-03-12T03:55:29.917 に答える