Я создал собственный сторож в laravel. Проблема, с которой я сталкиваюсь, заключается в том, что когда я проверяю функцию Запомнить меня на странице входа, я могу войти в систему, но когда я хочу выйти, я не могу завершить сеанс. , Я знаю, что проблема в функциональности выхода из системы, но не знаю, как ее решить. Я попытался скопировать функцию выхода из системы в authenticatesuser.php
, но все еще не смог завершить сеанс и выйти из системы.
LoginController
<?php
namespace App\Http\Controllers\CustomerAuth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Auth;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function guard()
{
return Auth()->guard('customer');
}
public function logoutcustomer()
{
$customer = Auth::guard($customer)->logout();
$customer->session()->invalidate();
return redirect('/');
}
public function showLoginForm()
{
if (Auth::user() || Auth::guard('customer')->user()) {
return redirect('/');
} else {
return view('customer-auth.login');
}
}
}
AuthenticatesUser.php
public function logout(Request $request)
{
$this->guard()->logout();
$request->session()->invalidate();
return redirect('/');
}
//navbar customer
<a class="dropdown-item" href="{{ route('customer.logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('customer.logout') }}" method="POST" style="display: none;">
@csrf
</form>
веб-маршрут
Route::group(['prefix'=> 'customer'], function () {
// Login Routes...
// Route::get('login', ['as' => 'customer.login', 'uses' => 'CustomerAuth\LoginController@showLoginForm']);
Route::post('login', [ 'uses' => 'CustomerAuth\LoginController@login'])->name('customer.login');
// Route::post('logout', ['as' => 'customer.logout', 'uses' => 'CustomerAuth\LoginController@logoutcustomer']);
Route::post('logout', 'CustomerAuth\LoginController@logoutcustomer')->name('customer.logout');
}