使用 Auth 验证登录凭据

问题描述 投票:0回答:1

我在验证管理员登录凭据时遇到困难,并且不确定我可能在哪里犯了错误。对于识别和解决问题的任何帮助,我们将不胜感激。

这是管理控制器

 public function AdminLogin(Request $req)
    {

        try {
            $credentials = [
                'UserName' => $req->input('name'),
                'Password' => $req->input('Password'),
            ];
            if (Auth::guard('web')->attempt($credentials)) {
                $user = Auth::guard('web')->user();
                return redirect('Dashboard')->with('success', 'Login Success');
            } else {
                return redirect()->back()->with('error', 'Invalid login credentials');
            }
        } catch (\Exception $e) {
            return redirect('/')->with('error', $e->getMessage());
        }
    }

这是登录表格

<div class="card">
            <div class="card-body login-card-body">
                <p class="login-box-msg">Sign in</p>

                <form action="/admin/login" method="post" class="needs-validation">
                    @csrf
                    <div class="input-group mb-3">
                        <input type="text" class="form-control" placeholder="Enter User" name="name"
                            value="{{ old('user') }}">

                        <div class="input-group-append">
                            <div class="input-group-text">
                                <span class="fas fa-user"></span>
                            </div>

                        </div>

                    </div>

                    <span style="color:red">
                        @error('name')
                            {{ $message }}
                        @enderror
                    </span>

                    <div class="input-group mb-3">
                        <input type="password" class="form-control" placeholder="Password" name="Password"
                            value="{{ old('password') }}">
                        <div class="input-group-append">
                            <div class="input-group-text">
                                <span class="fas fa-lock"></span>
                            </div>
                        </div>
                    </div>
                    <span style="color:red">
                        @error('password')
                            {{ $message }}
                        @enderror
                    </span>

                    <div class="row">
                        <div class="col-4">
                            <div class="icheck-primary">
                                <input type="checkbox" id="remember">
                                {{-- <label for="remember">
                                    Remember Me
                                </label> --}}
                            </div>
                        </div>
                        <!-- /.col -->
                        <div class="col-4">
                            <button type="submit" class="btn btn-primary btn-block">Login
                                In</button>
                        </div>
                        <!-- /.col -->
                    </div>
                </form>

                {{-- <div class="social-auth-links text-center mb-3">
                    <p>- OR -</p>
                    <a href="#" class="btn btn-block btn-primary">
                        <i class="fab fa-facebook mr-2"></i> Sign in using Facebook
                    </a>
                    <a href="#" class="btn btn-block btn-danger">
                        <i class="fab fa-google-plus mr-2"></i> Sign in using Google+
                    </a>
                </div>
                <!-- /.social-auth-links --> --}}

                {{-- <p class="mb-0">
                    <a href="register.html" class="text-center">Register a new membership</a>
                </p> --}}
            </div>
            <!-- /.login-card-body -->
        </div>

这是使用 post 方法的管理员登录控制器

Route::post('/admin/login', [AdminController::class, 'AdminLogin']);

laravel authentication model-view-controller controller breeze
1个回答
0
投票

在管理模型中覆盖密码字段,如下所示

public function getAuthPassword()
{
    return $this->Password;
}

在控制器中

public function AdminLogin(Request $req)
{

    try {
        $credentials = [
            'UserName' => $req->input('name'),
            'password' => $req->input('Password'),
        ];
        if (Auth::guard('web')->attempt($credentials)) {
            $user = Auth::guard('web')->user();
            return redirect('Dashboard')->with('success', 'Login Success');
        } else {
            return redirect()->back()->with('error', 'Invalid login credentials');
        }
    } catch (\Exception $e) {
        return redirect('/')->with('error', $e->getMessage());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.