Authentication 更改laravel 5.6中哈希函数中的密码
我想更改在保存时被散列的密码 如何更改密码Authentication 更改laravel 5.6中哈希函数中的密码,authentication,passwords,laravel-5.6,Authentication,Passwords,Laravel 5.6,我想更改在保存时被散列的密码 如何更改密码 'password' => Hash::make($data->password). 我的控制器 $request->validate([ 'oldpass' => 'required', 'password' => 'required|alphaNum|min:6', 'password_confirmation' => 'required|same:newpass', ]); $id
'password' => Hash::make($data->password).
我的控制器
$request->validate([
'oldpass' => 'required',
'password' => 'required|alphaNum|min:6',
'password_confirmation' => 'required|same:newpass',
]);
$id = $request->id;
$users = Auth::user()->whereId($id)->get();
foreach ($users as $user) {
if ($oldpass == $user->password) {
$user->update([
'password' => Hash::make($request->newpass)
]);
return view('\balance');
} else {
return 'error';
}
}
您应该使用
Hash::check($old\u password,$Hash\u password)
,类似这样:
public function passwordChange(Request $request, User $user_name) {
// find the loggedin user
$user = User::find(Auth::user()->id);
// validate rules
$validator = Validator::make($request->all(), [
'old_password' => 'required|min:6',
'password' => 'required_with:password_confirmation|required|min:6',
'password_confirmation' => 'confirmed|required|min:6',
]);
// what to do if validator fails
if ($validator->fails()) {
return redirect($user->user_name . '/settings')->withErrors($validator)->withInput();
} else {
$old_password = $request->input('old_password');
$new_password = $request->input('password');
$hashed_password = Auth::user()->password;
// checking the old pass with new one
if (Hash::check($old_password, $hashed_password)) {
$user->update([
'password'=> Hash::make($new_password)
]);
return redirect($user->user_name . '/settings')->with('success', 'Your Password updated.');
} else {
return redirect($user->user_name . '/settings')->with('success', 'Your Old password is wrong!');
}
}
}
还请注意,
'password'=>'必需\u带有:password\u confirmation
和验证程序上的'password\u confirmation'=>'必需|相同:newpass'
。希望有帮助。此函数首先检查验证规则,如果它们正常,然后检查密码匹配。我已经测试了上面的函数,它可以工作,您不需要任何循环。你对样品有什么问题吗?验证部分没有错误。仅当(Hash::check($old_password,$Hash_password))此Hash::check()条件失败时才启用