Я использую Bootstrap 4 и Laravel 6.
Вместо того, чтобы иметь другую страницу входа в систему, я хочу позволить пользователю войти в систему через форму в панели навигации. Это моя форма. Форма входа в navbar
Моя проблема, когда пользователь нажимает кнопку входа в систему, он перенаправляет на / login Просмотр, предлагаемый Laravel, и появляется ошибка 419 | Страница устарела .
Я пытался переопределить код Laravel, но проблема в том, что я запутался, либо мне нужно изменить действие формы, написать что-то в LoginController или что-то в Маршрут .
То, что я sh, является зарегистрированным пользователем, просто введет учетные данные и успешно выполнит вход. После входа он будет перенаправлен на ту же страницу (домашнюю страницу), но с кнопкой выхода.
header. 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>
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');
}
}