jeudi 9 avril 2020

Bootstrap Login form in navbar in laravel

I'm using Bootstrap 4 and Laravel 6.

Instead of having a different Login page,I want to let user login through form in navbar. This is my form. Login form in navbar

My issue is when the user hit login, he redirects to a /login View offered by Laravel and error appears 419 | Page Expired.

I tried to override Laravel's code but the issue is I' m confused either I need to change the form action ,write something in LoginController or something in Route.

What i wish is the registered user will simply put in credentials and successfully login. After login he will redirect to the same page(homepage) but with logout button.

header.php

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

              <!-- Authentication Links -->
              @guest
              <form method="post" action="">
                <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="" required autocomplete="email" autofocus placeholder="email address">

                    @error('email')
                        <span class="invalid-feedback" role="alert">
                            <strong></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></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"></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>
                       <span class="caret"></span>
                  </a>

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

                      <form id="logout-form" action="" method="POST" style="display: none;">
                          @csrf
                      </form>
                  </div>
              </li>

            @endguest


            </ul>

Route.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'
        ]);

      });

});

LoginController.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');
    }
}


via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire