2013-06-07 2 views
3

Итак, название в основном описывает мою проблему. My Hash: make() сошел с ума. Я создал таблицу пользователей с хешированным паролем, но я не могу заставить Laravel принимать мои учетные данные, и я думаю, что проблема в Hash :: make.Hash :: make ('password') возвращает разные результаты при каждом вызове

Итак, тест этот код:

Route::get('/', function() 
{ 
    return Hash::make('1234'); 
}); 

каждый раз, когда я ударил маршрут «/» это дает мне другой хэш.

Это ведет себя так, как для всех? Любые предложения? Я потерялся!

После ракетного кончике, я попытался

if(!Hash::check('1234', User::find(1)->password)) 
    return 'not'; 

$credentials = array(
     'email' => '[email protected]', 
     'password' => '1234', 
     //'remember' => $remember 
    ); 
if(Auth::attempt($credentials)) 
{ 
    return View::make('hello'); 
} 
return "Invalid Credentials"; 

Но он продолжает возвращение "Неверные учетные данные". Я дважды проверил свой auth.php, и он настроен правильно. Что-нибудь еще я мог попробовать?

+0

Это звучит, как вы видите, соль. – SLaks

+1

Вам не нужно запускать 'Auth :: check' самостоятельно, поскольку' Auth :: попытка' делает это для вас. Вы каким-либо образом изменили модель «Пользователь»? –

+0

Я не был. Таблица mysql - это пользователи, контроллер - Пользователь, а поля - это электронная почта и пароль. Это заводские настройки. – Magus

ответ

9

Это то, что он должен делать. Каждый раз он должен создавать разные пароли, поскольку он создает новую случайную соль.

Для проверки пароля пользователя используется метод check.

if(Hash::check('1234', $password)){ 
} 

Или вы можете использовать Auth::attempt.

$user = array(
    'email' => $email, 
    'password' => $password 
); 
if (Auth::attempt($user)){ 
} 

Docs: http://laravel.com/docs/security

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

  • Нет связанных вопросов^_^