ここに私の問題があります:
次のテーブル 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 文字であることに気付きました。私はばかだと思います
それが誰かを助けることを願っています/スレッド