首页 > 解决方案 > 防止密码重置时更改电子邮件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当前用户的电子邮件,谁重置密码?

标签: phplaravel

解决方案


如果我很好地解决了您的问题,您想显示电子邮件,但重置密码页面的只读格式。我建议你采取一些方法。随意使用任何。

解决方案 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在重置密码时使用它来访问它。

希望,这对你有帮助。享受编码:)


推荐阅读