Я использую проверку хеша для сравнения текущего пароля, который вводится пользователем, и текущего пароля, который хранится в базе данных (Bcrypt)
Вот мой исходный код
$user = User::findOrFail($request->id);
if (Hash::check($request->password, $user->password)) {
$user->fill([
'password' => Hash::make($request->newPassword)
])->save();
$request->session()->flash('success', 'Password changed');
// return redirect()->route('your.route');
echo "Hash match";
} else {
$request->session()->flash('error', 'Password does not match');
// return redirect()->route('your.route');
echo "Hash does not matched";
}
Моя проблема заключается в хэше: проверка всегда возвращает false («хэш не соответствует»)
Я помещаю переменную в проверку хеша следующим образом:
Hash::check(new password plain text, bcrypt value in db)
Перед вызовом проверки хэша.Я пытаюсь напечатать переменную, чтобы выяснить, почему она не работает.Я обнаружил, что мой обычный текст нового пароля уже отправлен, и я уже получил пароль bcrypt из базы данных.Все выглядит хорошо, это должно работать.Я не знаю, в чем моя ошибка.Я следую многим темам на этом сайте, чтобы решить мою проблему, поскольку я пытался, это не работает для меня.Кто-нибудь, пожалуйста, помогите мне.
Спасибо.