2014-02-01 4 views
7

У меня есть профиль для пользователя, который может редактировать собственные профили. в этой форме у меня есть текущий пароль. который должен соответствовать совпадению с базами данных.Laravel Hash :: check() allways return false

Форма:

{{ Form::password('currPassword', array('id'=>'currPassword')) }} 

я хочу иметь эту функцию в контроллере, чтобы проверить это с базой данных.

$data = User::find($id); 
if(! Hash::check($data->password , Input::get('currPassword'))) 
{ 
    return Redirect::to('/admin/profile') 
     ->with('message', 'Current Password Error !') 
     ->withInput(); 
} 

хэшируются 123456 пароль в базе данных в порядке и после сдачи 123456 в currPassword, который должен быть вернуться TRUE, но что возвращение FALSE allwayes.

ответ

24

Вы используете неправильный порядок аргументов. Это Hash::check($input, $hash), а не наоборот.

Короткий пример ремесленник:

[1] > $pw = 123456; 
// 123456 
[2] > $hashed = Hash::make($pw); 
// '$2y$10$xSugoyKv765TY8DsERJ2/.mPIOwLNdM5Iw1n3x1XNVymBlHNG4cX6' 
[3] > Hash::check($hashed, $pw); 
// false 
[4] > Hash::check($pw, $hashed); 
// true 
Смежные вопросы