私はLaravelのAuthクラスを試していますが、ユーザーにログインしようとするたびにfalseを返します。ここに私のコードです:Laravel 4 Auth :: attempt()は常にfalseを返します
routes.phpの
Route::get('new-user', function() {
return View::make('register');
});
Route::post('new-user', function() {
$name = Input::get('name');
$email = Input::get('email');
$password = Hash::make(Input::get('password'));
$user = new User;
$user->name = $name;
$user->email = $email;
$user->password = $password;
$user->save();
});
Route::get('login', function() {
return View::make('login');
});
Route::post('login', function() {
$user = array(
'email' => Input::get('email'),
'password' => Hash::make(Input::get('password'))
);
if (Auth::attempt($user)) {
//return Redirect::intended('dashboard');
return "ok.";
} else {
return "Wrong.";
}
});
ビュー/ login.blade.php
{{ Form::open(array('url' => 'login', 'method' => 'post')) }}
<h1>Login:</h1>
<p>
{{ Form::label('email', 'Email: ') }}
{{ Form::text('email') }}<br />
{{ Form::label('password', 'Password: ') }}
{{ Form::password('password') }}<br />
</p>
<p>
{{ Form::submit('Login') }}
</p>
{{ Form::close() }}
設定データベースが電子メールを持っている/ auth.php
return array(
'driver' => 'eloquent',
'model' => 'User',
'table' => 'users',
'reminder' => array(
'email' => 'emails.auth.reminder', 'table' => 'password_reminders',
),
);
&パスワードフィールド、およびパスワードフィールドはvarchar(60)です。 私は/ loginにログイン情報を送るたびに、私に「間違って」返されます。 私は本当にここで何が間違って見ることができないのですか?
それでも私はfalse( "間違っています")を返します。 – John
ドキュメント(http://four.laravel.com/docs/security#storing-passwords)によると、パスワードは試みられません。私はこれが一つの問題だと確信していますが、複数の問題があるかもしれません。パスワードがユーザテーブルに正しく保存されていることを確認してください。 –
データベースにユーザを保存する方法は次のとおりです。 'Route :: post( 'new-user'、function(){ $ name = Input :: get( 'name'); $ email = Input: $ password = Hash :: make(Input :: get( 'password')); $ user = new User; $ user-> name = $ name; $ user->メール= $メール; する$ user->パスワード= $パスワード; する$ user->は、(保存); }); ' 私はいけない」申し訳ありませんが、正しくここにコードを表示する方法を知っています。 – John