首页 > 解决方案 > laravel导航栏中的引导登录表单

问题描述

我正在使用 Bootstrap 4 和 Laravel 6。

我不想让用户通过导航栏中的表单登录,而不是使用不同的登录页面。这是我的表格。 导航栏中的登录表单

我的问题是当用户点击登录时,他重定向到Laravel 提供的/login视图并出现错误419 | 页面已过期

我试图覆盖 Laravel 的代码,但问题是我很困惑,要么我需要更改表单操作,要么在LoginController中写一些东西,要么在Route中写一些东西。

我希望注册用户只需输入凭据并成功登录。登录后,他将重定向到同一页面(主页),但带有注销按钮。

头文件.php

            <ul class="nav navbar-nav ml-auto">

              <!-- Authentication Links -->
              @guest
              <form method="post" action="{{ route('login') }}">
                <div class="form-row align-items-center">

                  <div class=" my-1 mx-1">
                    <label for="email" class="sr-only col-form-label text-md-right"></label>
                    <input id="email" type="email" class="form-control form-control-sm @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus placeholder="email address">

                    @error('email')
                        <span class="invalid-feedback" role="alert">
                            <strong>{{ $message }}</strong>
                        </span>
                    @enderror
                  </div>


                  <div class=" my-1 mx-1">
                    <label for="password" class="sr-only col-form-label text-md-right"></label>
                    <input id="password" type="password" class="form-control form-control-sm @error('password') is-invalid @enderror" name="password" required autocomplete="current-password" placeholder="password">

                    @error('password')
                        <span class="invalid-feedback" role="alert">
                            <strong>{{ $message }}</strong>
                        </span>
                    @enderror
                  </div>

                <!--  <div class="col-auto my-1">
                    <div class="form-check">
                      <input class="form-check-input" type="checkbox" id="autoSizingCheck2">
                      <label class="form-check-label" for="autoSizingCheck2">
                        Remember me
                      </label>
                    </div>
                  </div>-->
                  <div class="col-auto my-1">
                    <button type="submit" class="btn btn-primary login">{{ __('Login') }}</button>
                  </div>
                </div>
              </form>

            @else
<li class="nav-item dropdown">
                  <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
                      {{ Auth::user()->name }} <span class="caret"></span>
                  </a>

                  <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
                      <a class="dropdown-item" href="{{ route('logout') }}"
                         onclick="event.preventDefault();
                                       document.getElementById('logout-form').submit();">
                          {{ __('Logout') }}
                      </a>

                      <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                          @csrf
                      </form>
                  </div>
              </li>

            @endguest


            </ul>

路由.php

    Route::group([ 'middleware' => ['web']], function(){

      Route::get('/',[

        'uses' => 'niceActionController@getActionController'
      ]);


      Route::get('/{url}',  [
        'uses' => 'niceActionController@getPages',
        'as' => 'getURL'
      ]);


      Auth::routes(['verify' => true]);


    /***********Group Routes******************/
      Route::group(['prefix' => 'products'] , function(){

        Route::get('/{product}',  [
          'uses' => 'niceActionController@getProductPages',
          'as' => 'productPage'
        ]);

      });

});

登录控制器.php

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

      protected $redirectTo = '/home';

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

标签: phplaravellaravel-5

解决方案


推荐阅读