身份验证不断要求输入密码

时间:2021-05-10 17:13:40

标签: laravel authentication

所以我创建了一个 Laravel 自定义身份验证,我正处于创建登录表单的阶段,但它突然不断要求填写密码,我已经完成了,但没有任何反应。

这是我的登录表单:

<form action="{{ route('auth.check') }}" class="log-form" method="post" value="{{ old('email') }}">

        @if(Session::get('fail'))
        <div class="alert-danger">
            {{ Session::get('fail') }}
        </div>
        @endif

        @csrf

            <div class="name">
                <label for="fname">Email Address</label><br>
                <input type="text" id="email" name="email" value=""><br>
            </div>

            <span class="text-danger">
                @error('email') {{ $message }} @enderror
            </span>


            <div class="name">
                <label for="fname">Password</label><br>
                <input type="password" id="pass" name="fname" value=""><br>
            </div>

            <span class="text-danger">
                @error('password') {{ $message }} @enderror
            </span>
            
            
            <br><br>


            <input type="submit" value="LOG IN" class="log-sub">

        </form> 

这是我的控制器:

 function check(Request $request){
    $request->validate([
        'email'=>'required|email',
        'password'=>'required|min:6|max:16',
    ]);


    $userInfo = Admin::where('email', '=', $request->email)->first();

    if($userInfo){
        return back()->with('fail', 'We do not recognize your email address');
    }
    else {
        if(Hash::check($request->password, $userInfo->passsword)){
            $request->session()->put('LoggedUser', $userInfo->id);
            return redirect('admin/dashboard');
        }

        else {
            return back()->with('fail', 'Incorrect password');
        }
    }
}

1 个答案:

答案 0 :(得分:1)

问题仅在于您的输入名称。在验证中,您希望有一个名为 password 的输入,但是密码输入被命名为 fname,因此验证将始终失败,因为密码字段是必需的。 所以而不是:

<input type="password" id="pass" name="fname" value="">

使用:

<input type="password" id="pass" name="password" value="">