php - 防止密码重置时更改电子邮件laravel 5.7
问题描述
如何防止在 Laravel 的密码重置页面上更改电子邮件?
我输入了电子邮件:
<div class="col-md-6">
<input id="email" readonly type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ $email ?? old('email') }}" required autofocus>
@if ($errors->has('email'))
<span class="invalid-feedback" role="alert">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
我粘贴了属性readonly
,但输入的电子邮件为空。如何传递电子邮件用户并防止更改电子邮件?
在 ResetPasswordController 我有:
public function showResetForm(Request $request, $token = null)
{
$email = //getUserEmail ?
return view('auth.passwords.reset')->with(
['token' => $token, 'email' => $request->email]
);
}
/**
* Get the password reset validation rules.
*
* @return array
*/
protected function rules()
{
return [
'token' => 'required',
'email' => 'required|email|exists:users,email',
'password' => 'required|confirmed|min:6',
];
}
如何更改$request->email
当前用户的电子邮件,谁重置密码?
解决方案
如果我很好地解决了您的问题,您想显示电子邮件,但重置密码页面的只读格式。我建议你采取一些方法。随意使用任何。
解决方案 1:在内部,ResetPasswordController -> showResetForm()
$password_resets = DB::table('password_resets')->get();
foreach($password_resets as $password_reset)
{
if (Hash::check($token, $password_reset->token)) { // checking hash match with requested token
// here if hash match with token
$email = $password_reset->email;
}
}
在这里,我们正在遍历 password_resets 表并检查是否reset password token
与表中的实际匹配hashed token
。 您可以像这样$email
在内部轻松使用:reset.blade.php
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ isset($email) ? $email : '' }}" required readonly>
解决方案2:
在发送密码重置电子邮件时,您可以传递电子邮件,base64_encode
并且可以base64_decode
在重置密码时使用它来访问它。
希望,这对你有帮助。享受编码:)
推荐阅读
- mysql - MySql如何根据查询类型创建一行并添加子表?
- dataset - SSRS textrun 在外部聚合中使用第一个聚合(不同的数据集)
- angular - Angular:路由器导航不返回根网址
- python - 如何使用具有透明背景的opencv将png图像修复到另一个图像上
- html - IE 11 中的 CSS 网格问题
- google-app-engine - 将应用程序从 Bitbucket 部署到 Google 云应用引擎
- ecmascript-6 - 是什么让 ES6 如此特别?
- mysql - 如何按字符串类型的列进行排序,但字母与排序无关?
- ruby-on-rails - 当我执行 user.file.attach(params[:file]) 时,使用活动存储时它不会保存
- konvajs - 如何在 KonvaJS 中输入数学?(集成 MathQuill 或类似软件)