2013-08-01 6 views
4

Недавно я начал изучать Laravel (фреймворк PHP MVC), и у меня возникло много проблем с проверкой подлинности пользователя с помощью: Auth :: попытка ($ credentials).Laravel Auth :: попытка() всегда false?

Ниже я расскажу о своих фрагментах кода. В моей базе данных mySQL у меня есть запись со следующими значениями ключа =>: id => 1, username => 'admin', password => 'admin', created_at => 0000-00-00 00:00:00, updated_at => 0000-00-00 00:00:00

Валидатор проходит, но попытка Auth: попытка всегда терпит неудачу.

Если код ниже и мое небольшое объяснение недостаточно, сообщите мне! :-)

routes.php:

Route::get('login', '[email protected]'); 
Route::post('login', '[email protected]'); 

AuthController:

public function showLogin(){ 

    if(Auth::check()){ 
     //Redirect to their home page 
    } 
    //Not logged in 
    return View::make('auth/login'); 
} 

public function postLogin(){ 

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

    $reqs = array(
     'username' => 'Required', 
     'password' => 'Required' 
    ); 

    $validator = Validator::make($userData, $reqs); 

    if($validator->passes() && Auth::attempt($userData)){ 
     return Redirect::to('home'); 
    } 
    return Redirect::to('login')->withInput(Input::except('password')); 
} 

ответ

17

Я считаю, что метод попытка() будет хэш пароля, который отправляется в Видя, как пароль вашей записи DB является. «admin» в открытом тексте, это не сработает. Сохраните пароль с помощью Hash :: make ($ password); и я считаю, что ваша проблема должна быть решена.

+0

Это сработало! Я откатил все мои миграции, сделал Hash :: make изменение ко всем паролям и выполнил миграцию. Ты спасатель жизни! : D – xDranik

+1

Сладкий, рад, что я мог бы помочь! :) Было бы хорошо, если бы вы могли выбрать ответ как правильный, поэтому я получаю некоторую репутацию: D – madshvero

+0

Там вы идете! Еще раз спасибо :) – xDranik

Смежные вопросы