我已经使用Hash :: check()次数来更新密码功能。它工作正常。但是在这里它总是返回错误。我不明白为什么它返回假。这是为我工作的代码。Hash :: check()在Laravel中返回false
$pass_data = array(
'current_pass' => $post['old_pass'],
'new_pass' => $post['new_pass'],
);
$pass_data['new_pass'] = bcrypt($pass_data['new_pass']);
if (\Hash::check($pass_data['current_pass'],\Auth::user()->password))
{
$user = new User();
if($user->where('id',\Auth::user()->id)->update(['password'=>$pass_data['new_pass']])){
return response()->json(['msg'=>'Password Changed']);
}
}
else{
return response()->json(['msg'=>'Wrong Password']);
}
这里是一个正在返回假的代码,这里$ mem_id不是认证用户(因为改变非认证用户的通行证?是的话)。
$mem_id = $request['mem_id'];
$old_pass = $request['mem_old_pass'];
$mem_pass = User::where('id',$mem_id)->pluck('password');
if (\Hash::check($old_pass,$mem_pass)) {
$new_pass = bcrypt($request['mem_new_pass']);
$update = User::where('id',$mem_id)->update(['name'=>$request['mem_name'],'email'=>$request['mem_email'],'password'=>$new_pass]);
if ($update) {
$updated_user = User::where('id',$mem_id)->get();
return response()->json(['msg'=>'updated','user'=>$updated_user]);
}
else{
return response()->json(['msg'=>'update_failed']);
}
}
else{
return response()->json(['msg'=>'pass_fail']);
}
我收到响应'pass_fail'。
是的,他确实是在向右转。我正在谈论关于检查的第二部分代码。 –
对不起我的错误,你的回答是正确的 –
编辑了这个问题,那是一个错误,我只是通过纯文本。仍然我得到错误 –