laravel 5.6框架中重置密码时的原密码比对

在登录后台后修改自己的密码,如下图界面


在输入框输入原密码和新密码后提交到控制器的方法时,要进行原密码的比对

laravel框架中使用的加密函数是bcrypt,这个函数不能像md5一样将输入的原密码md5后直接和数据库里的密码进行比对,这个函数就算你用输入的原密码bcrypt后和数据库里的密码怎么比都不会是一样的。

框架内自带的一个Hash可以解决这个问题,在这里我们使用Hash::check(输入框接收的密码,数据库里的密码或者用Auth获取当前登录用户的密码),它会返回一个布尔值,如果为真就是比对成功!反之则不一致!

if(!Hash::check ($request->input('oldpassword'),Auth()->user ()->password)){
			session()->flash('danger','原密码不正确');
			return redirect ()->back();
		}
		$user=\Auth::user ();
		$user->password=bcrypt($request->input('password'));
		$user->save();
		session()->flash('success','密码修改成功!');
		return redirect ('/admin');


猜你喜欢

转载自blog.csdn.net/u013724078/article/details/81054197