Я использовал Hash :: check() количество раз для функции обновления пароля. Он работал нормально. Но здесь он всегда возвращает false. Я не понимаю, почему его возвращение ложно. Вот код, который работал для меня.Hash :: check() возвращает false в Laravel
$pass_data = array(
'current_pass' => $post['old_pass'],
'new_pass' => $post['new_pass'],
);
$pass_data['new_pass'] = bcrypt($pass_data['new_pass']);
if (\Hash::check($pass_data['current_pass'],\Auth::user()->password))
{
$user = new User();
if($user->where('id',\Auth::user()->id)->update(['password'=>$pass_data['new_pass']])){
return response()->json(['msg'=>'Password Changed']);
}
}
else{
return response()->json(['msg'=>'Wrong Password']);
}
Вот код, который возвращает ложь, Здесь $ mem_id не идентифицированный пользователь (это из-за изменения пропуска NON аутентифицированного пользователя?).
$mem_id = $request['mem_id'];
$old_pass = $request['mem_old_pass'];
$mem_pass = User::where('id',$mem_id)->pluck('password');
if (\Hash::check($old_pass,$mem_pass)) {
$new_pass = bcrypt($request['mem_new_pass']);
$update = User::where('id',$mem_id)->update(['name'=>$request['mem_name'],'email'=>$request['mem_email'],'password'=>$new_pass]);
if ($update) {
$updated_user = User::where('id',$mem_id)->get();
return response()->json(['msg'=>'updated','user'=>$updated_user]);
}
else{
return response()->json(['msg'=>'update_failed']);
}
}
else{
return response()->json(['msg'=>'pass_fail']);
}
Я получаю ответ 'pass_fail'.
Да, он делает шифрование справа. Я говорю о второй части кода, касающейся проверки. –
извините мою ошибку, ваш ответ правильный –
отредактировал вопрос, что один был ошибкой, я передаю простой текст. Тем не менее, я получаю сообщение об ошибке –