添加登录中间件后,Laravel 8 验证消息未显示

问题描述

我的登录页面的验证消息工作正常,但是当我添加中间件以在访问登录页面重定向上一页时,如果用户已经登录。然后验证消息没有显示在我的登录页面中。

我的中间件 - SampleAuth


    public function handle(Request $request,Closure $next)
    {
       $path = $request->path();

       if($request->path()=="login" && $request->session()->has('name') )

       {

           return redirect('/');
       }
        return $next($request);
    }
}

内核

 protected $middleware = [
        // \App\Http\Middleware\TrustHosts::class,\App\Http\Middleware\TrustProxies::class,\Fruitcake\Cors\HandleCors::class,\App\Http\Middleware\PreventRequestsDuringMaintenance::class,\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,//Adding Session for middleware
        \Illuminate\Session\Middleware\StartSession::class,\App\Http\Middleware\Trimstrings::class,\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,//Sample Authentication Middleware
        \App\Http\Middleware\SampleAuth::class,];

登录

<form action="/login/lp" method="POST">
                @csrf
                <div class="form-group">
                    <label for="username">Email</label>
                    <input type="text" class="form-control" id="username" name="username" value="{{ old('username') }}" aria-describedby="TextHelp" placeholder="Enter Email">
                    <small id="TextHelp" class="form-text text-muted">Enter Your Email</small>
                    <div>
                        @foreach($errors->get('username') as $err)
                            <small class="text-danger">{{$err}}</small>
                        @endforeach
                    </div>

                </div>

                    <div class="form-group">
                    <label for="password">Password</label>
                    <input type="password" class="form-control" id="password" name="password" placeholder="Password">
                        <div>
                            @foreach($errors->get('password') as $err)
                                <small class="text-danger">{{$err}}</small>
                            @endforeach
                        </div>
                </div>

                <button type="submit" class="btn btn-primary">Login</button>
            </form>

控制器

public function postLogin($type,Request $request) {


        //Login Input Validation
        $validateData = $request->validate([
            'username' =>'required|max:45','password' =>'required|max:120'
        ]);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)