저는 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에 로그인 정보를 보낼 때마다 "잘못"이라고 표시됩니다. 정말 여기서 뭐가 잘못된 건지 모르겠군요?
여전히 나를 잘못 반환합니다 ("틀렸어.") – John
설명서 (http://four.laravel.com/docs/security#storing-passwords)에 따르면 암호는 시도 할 때 unhashed로 전달됩니다. 이것이 하나의 문제라고 확신하지만, 둘 이상있을 수 있습니다. 암호가 사용자 테이블에 올바르게 저장되어 있는지 확인하십시오. –
다음은 데이터베이스에 사용자를 저장하는 방법입니다. Route :: post ('new-user', function() { $ name = Input :: get ('name'); $ email = Input :$ user-> name = $ name; $ user-> $ user-> name = $ name; 이메일 = $ 이메일, $ 사용자 -> 비밀 번호 = $ 암호; $ 사용자 -> 저장(); });' 죄송 i '를 제대로 여기에 코드를 표시하는 방법을 잘 모릅니다. – John