我有一个Laravel应用程序,我使用自定义用户身份验证。现在我正在尝试允许用户更新他们的密码,我遇到的问题是我需要检查旧密码,如果该字段不是空的,我想检查新密码是否与密码匹配重复提交,如果确实如此,那么在这里更新它是我在控制器中的代码:
$newpass = $request->input('password');
$passrepeat = $request->input('passwordRepeat');
if ($oldPass = $request->input('oldPassword') != null)
{
if (Hash::check($request->oldPassword, auth()->user()->password)){
if ($newpass = $passrepeat){
$password = bcrypt($request['password']);
$user->password = $password;
}
}
}
然后我更新它:
$user->update();
但我的代码似乎甚至没有检查密码字段。当我检查oldPassword字段时,我显然犯了错误。我可以尝试的选项太多,所以我决定问一个问题。
Laravel 5.4
答案 0 :(得分:2)
来自the docs:
check
方法允许您验证给定的纯文本字符串是否与给定的哈希对应。但是,如果您使用的是Laravel附带的LoginController
,则可能不需要直接使用它,因为此控制器会自动调用此方法:
if (Hash::check('plain-text', $hashedPassword)) {
答案 1 :(得分:0)
只需替换这两行
$password = bcrypt($request['password']);
$user->password = $password;
使用
$user->password = password_hash($request->password, PASSWORD_DEFAULT);