如何检查输入的密码是否为当前密码?

时间:2016-10-22 07:43:29

标签: laravel

要更改密码,请输入当前密码。如果密码正确,也会显示错误消息

public function passwordupdate(Request $ 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();
    }

}

3 个答案:

答案 0 :(得分:3)

哈希检查https://laravel.com/docs/5.3/hashing

if (Hash::check('plain_text_password', $hashedPassword))
{
    // The passwords match...
}

答案 1 :(得分:1)

  1. 首先,您需要use Illuminate\Support\Facades\Hash;

  2. 检查用户输入的旧密码是否可以使用Hash::check()。该功能需要2个参数。 第一个是普通字符串,第二个是哈希密码(旧密码)。

  3. 您可以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

答案 2 :(得分:0)

您可以使用Hash::check()方法。例如,如果要将输入的密码与当前用户的密码进行比较:

if (Hash::check($request->password, auth()->user()->password) {
    // Entered password is correct.