首页 > 解决方案 > 驾驶员警卫登录系统在laravel中不起作用

问题描述

我手动创建了两个警卫,名称是 admin 和 driver 。然后我创建了驱动程序和管理员的登录系统。其中司机登录系统不工作。我认为 driverAuthentication 功能不起作用。请给出这个问题的解决方案。

这是 web.php 文件

Route::namespace("Driver")->prefix('driver')->group(function(){
    Route::get('/', 'HomeController@index')->name('driver.home');
   
    Route::namespace('Auth')->group(function(){
    Route::get('/login', 'LoginController@showLoginForm')->name('driver.login');
    
    Route::post('/login', 'LoginController@driverAuthentication');
    Route::post('logout', 'LoginController@logout')->name('driver.logout');
    //  Route::post('administrator/userAuthentication', 'LoginController@userAuthentication');
    Route::post('/register/store', 'RegisterController@store');
    Route::get('/register', 'RegisterController@showRegistrationForm')->name('driver.register');

   });
   });

这是我的驱动程序保护的 loginController.php 文件

<?php

namespace App\Http\Controllers\Driver\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    //
    use AuthenticatesUsers;



    protected $redirectTo = '/driver';




    public function __construct()
    {
        $this->middleware('guest:driver')->except('logout');

    }

    public function showLoginForm(){
        return view('driver.auth.login');
    }


    public function logout(Request $request)
    {
        $this->guard()->logout();
 
        $request->session()->invalidate();
 
        return redirect()->route('driver.login');
    }


    protected function guard(){
        return Auth::guard('driver');
    }
    public function driverAuthentication(Request $request){
        $this->validate($request, [
            'email'   => 'required|email',
            'password' => 'required|min:6'
        ]);
        $email=$request->email;
        // dd($email);

        $password=$request->password;
        if(Auth::guard('driver')->attempt(['email' => $email, 'password' => $password])){
            return redirect()->intended('/driver');
        }else{
            return back()->withInput($request->only('email', 'remember'));
        }
        die;
    }
}

这是我的驱动程序保护的 login.blade.php 文件

<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>Driver Login</title>

    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}" defer></script>

    <!-- Fonts -->
    <link rel="dns-prefetch" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Raleway:300,400,600" rel="stylesheet" type="text/css">

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<style>
    html,body{
        width: 100%;
        background: url("{{ asset ('image/driver-bg.jpg') }}") ;
                  background-position: center center;
                  background-repeat: no-repeat;
                  background-attachment: fixed;
                  background-size: cover;
    }
</style>
<body>
    <div id="app">
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8" style="padding-top:180px; padding-left:80px; padding-right:80px;">
            <div class="card">
                <div class="card-header" style="background-color:aqua;">{{ __('Driver Login') }}</div>

                <div class="card-body" style="background-color:darkgray;">
                    <form method="POST" action="{{ route('driver.login') }}">
                        @csrf

                        <div class="form-group row">
                            <label for="email" class="col-sm-4 col-form-label text-md-right" >
                            {{ __('E-Mail Address') }}
                        </label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" value="{{ old('email') }}" required autofocus>

                                @if ($errors->has('email'))
                                    <span class="invalid-feedback">
                                        <strong>{{ $errors->first('email') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

                                @if ($errors->has('password'))
                                    <span class="invalid-feedback">
                                        <strong>{{ $errors->first('password') }}</strong>
                                    </span>
                                @endif
                            </div>
                        </div>

                        <div class="form-group row">
                            <div class="col-md-6 offset-md-4">
                                <div class="checkbox">
                                    <label>
                                        <input type="checkbox" name="remember" {{ old('remember') ? 'checked' : '' }}> {{ __('Remember Me') }}
                                    </label>
                                </div>
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Login') }}
                                </button>
                                        
                                <button class="btn btn-primary" style="background-color:coral; border:1px solid coral;">
                                    <a style="color: white; text-decoration:none;" href="{{ route ('driver.register')}}">Register</a>
                                </button>

                                <!-- <a class="btn btn-link" href="{{ route('password.request') }}">
                                    {{ __('Forgot Your Password?') }}
                                </a> -->
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
<main class="py-4">
            @yield('content')
        </main>
    </div>
</body>
</html>

标签: phplaravel-8

解决方案


推荐阅读