gpt4 book ai didi

php - 更改密码用户 laravel 5.3

转载 作者:IT王子 更新时间:2023-10-28 23:49:28 25 4
gpt4 key购买 nike

我想用 laravel 5 创建带有 3 个字段(old_password、new_password、confirm_password)的表单。

查看

旧密码:{!! Form::password('old_password',['class' => 'form-control']) !!}

新密码:{!! Form::password('password',['class' => 'form-control']) !!}

确认新密码:{!! Form::password('verify_password',['class' => 'form-control']) !!}

用户注册时的 Controller

public function postRegister(Request $request)
{
$rules = [
'email' => 'required|email|unique:users',
'confirm_email' => 'required|same:email',
'password' => 'required|min:8|regex:/^(?=\S*[a-z])(?=\S*[!@#$&*])(?=\S*[A-Z])(?=\S*[\d])\S*$/',
'verify_password' => 'required|same:password',
];

$messages = [
'email.required' => 'email tidak boleh kosong',
'password.required' => 'password tidak boleh kosong',
'password.min' => 'Password harus minimal 8 karakter',
'password.regex' => 'Format password harus terdiri dari kombinasi huruf besar, angka dan karakter spesial (contoh:!@#$%^&*?><).',
'verify_password.required' => 'Verify Password tidak boleh kosong',
'email.email' => 'Format Email tidak valid',
'email.unique' => 'Email yang anda masukkan telah digunakan',
'verify_password.same' => 'Password tidak sama!',
];

$this->validate($request,$rules,$messages);


$newUser = $this->user->create([
'email' => $request->email,
'password' => \Hash::make($request->password),
]);
$this->activationService->sendActivationMail($newUser);

return redirect('/account/login')->with('success', 'Check your email');
}

我是 laravel 的新手,我读过一些类似的问题来在 stackoverflow 中更改密码,但这对我没有帮助。

我应该如何在我的 Controller 中为更改密码用户编写代码?提前致谢。

最佳答案

这是更改密码表单

<form id="form-change-password" role="form" method="POST" action="{{ url('/user/credentials') }}" novalidate class="form-horizontal">
<div class="col-md-9">
<label for="current-password" class="col-sm-4 control-label">Current Password</label>
<div class="col-sm-8">
<div class="form-group">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="password" class="form-control" id="current-password" name="current-password" placeholder="Password">
</div>
</div>
<label for="password" class="col-sm-4 control-label">New Password</label>
<div class="col-sm-8">
<div class="form-group">
<input type="password" class="form-control" id="password" name="password" placeholder="Password">
</div>
</div>
<label for="password_confirmation" class="col-sm-4 control-label">Re-enter Password</label>
<div class="col-sm-8">
<div class="form-group">
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Re-enter Password">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-5 col-sm-6">
<button type="submit" class="btn btn-danger">Submit</button>
</div>
</div>
</form>

创建规则

public function admin_credential_rules(array $data)
{
$messages = [
'current-password.required' => 'Please enter current password',
'password.required' => 'Please enter password',
];

$validator = Validator::make($data, [
'current-password' => 'required',
'password' => 'required',
'password_confirmation' => 'required|same:password',
], $messages);

return $validator;
}

修改密码的用户 Controller 方法

使用验证器;

public function postCredentials(Request $request)
{
if(Auth::Check())
{
$request_data = $request->All();
$validator = $this->admin_credential_rules($request_data);
if($validator->fails())
{
return response()->json(array('error' => $validator->getMessageBag()->toArray()), 400);
}
else
{
$current_password = Auth::User()->password;
if(Hash::check($request_data['current-password'], $current_password))
{
$user_id = Auth::User()->id;
$obj_user = User::find($user_id);
$obj_user->password = Hash::make($request_data['password']);
$obj_user->save();
return "ok";
}
else
{
$error = array('current-password' => 'Please enter correct current password');
return response()->json(array('error' => $error), 400);
}
}
}
else
{
return redirect()->to('/');
}
}

关于php - 更改密码用户 laravel 5.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39586104/

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