gpt4 book ai didi

php - 在 Laravel 5.4 中更改密码

转载 作者:可可西里 更新时间:2023-11-01 00:04:49 26 4
gpt4 key购买 nike

我已经在我的网络应用程序中添加了更改密码的代码。但是 Hash::check() 不起作用。始终返回 false。此外,Hash::Make() 每次都会返回不同的字符串。我试过 bcrypt() 但它也不起作用。请帮我。这是我的代码。

public function changePassword(Request $request)
{
$user = Auth::user();

$curPassword = $request->input['curPassword'];
$newPassword = $request->input['newPassword'];

if (Hash::check($curPassword, $user->password)) {
$user_id = $user->id;
$obj_user = User::find($user_id)->first();
$obj_user->password = Hash::make($newPassword);
$obj_user->save();

return response()->json(["result"=>true]);
}
else
{
return response()->json(["result"=>false]);
}
}

谢谢。

最佳答案

这是我的做法:

在我的 Controller 中,我使用以下方法:

public function changePassword()
{
$this->validate(request(), [
'current_password' => 'required|current_password',
'new_password' => 'required|string|min:6|confirmed',
]);

request()->user()->fill([
'password' => Hash::make(request()->input('new_password'))
])->save();
request()->session()->flash('success', 'Password changed!');

return redirect()->route('password.change');
}

这将验证输入,然后正确保存当前用户的新密码。它还会闪烁一条消息,然后将它们返回到密码更改表单。您可以删除该部分并在那里做您自己的事情。

这利用了我创建的名为 current_password 的自定义验证规则。您必须将其添加到您的 AppServiceProvider::boot() 方法中,如下所示:

public function boot()
{
// current password validation rule
Validator::extend('current_password', function ($attribute, $value, $parameters, $validator) {
return Hash::check($value, Auth::user()->password);
});
}

只需确保您在 AppServiceProvider 中使用了 AuthHashValidator 门面。

最后,我们只需要在我们的 lang/en/validation.php 文件中声明我们的错误信息:

'current_password' => "The :attribute is invalid.",

希望这对您有所帮助。

关于php - 在 Laravel 5.4 中更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42591795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com