#laravel
#laravel
Вопрос:
Чтобы изменить пароль, я ввожу текущий пароль.Для правильного пароля также будет отображаться сообщение об ошибке
общедоступная функция passwordupdate (запрос $request){
$user=user::find(Auth::user()->id);
$validator=Validator::make($request->all(), [
//'password' => 'required|confirmed|min:6|max:14'
'cpassword'=> 'required|confirmed|min:6|max:14'
]);
if($validator->fails()){
return redirect()->back()->withErrors(['cpassword'=>'Please check the password you given']);
}else{
$user->cpassword=bcrypt($request->cpassword);
$user->save();
return redirect()->back();
}
}
Комментарии:
1. Эй, пожалуйста, отметьте ответ как правильный, если он есть
Ответ №1:
Проверка хэша https://laravel.com/docs/5.3/hashing
if (Hash::check('plain_text_password', $hashedPassword))
{
// The passwords match...
}
Ответ №2:
-
Сначала вам нужно
use IlluminateSupportFacadesHash;
-
чтобы проверить, был ли старый пароль введен пользователем, вы можете использовать
Hash::check()
. Эта функция принимает 2 параметра. Первый — это обычная строка, а второй — хэшированный пароль (старый пароль).
Вы можете восстановить старый пароль, Auth::user()->password
поэтому, если условие будет
if(Hash::check($request['oldpass'], $user->password)){
//insert the new password
Auth::user->update([
'password'=>bcrypt($data['newpass'])
]);
Auth::user->save();
}
P.S
Hash::check()
возвращает true или false
Ответ №3:
Вы можете использовать Hash::check()
метод. Например, если вы хотите сравнить введенный пароль с паролем текущего пользователя:
if (Hash::check($request->password, auth()->user()->password) {
// Entered password is correct.