В Laravel пользователь может быть разлогинен с помощью метода logout()
из класса Auth
. Для этого вам нужно добавить маршрут и создать соответствующий метод в вашем контроллере.
Для начала, добавьте маршрут в файл web.php
в папке routes
вашего проекта:
Route::get('/logout', 'AuthController@logout')->name('logout');
Здесь мы определили GET-маршрут /logout
, который будет обрабатываться методом logout()
в контроллере AuthController
и дали ему имя logout
.
Затем, создайте контроллер AuthController
с помощью команды Artisan:
php artisan make:controller AuthController
В файле AuthController.php
в папке app/Http/Controllers
вам нужно добавить метод logout()
:
namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; class AuthController extends Controller { public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/login'); } }
В этом методе мы сначала вызываем статический метод logout()
класса Auth
, чтобы разлогинить текущего пользователя. Затем, мы инвалидируем сессию, чтобы удалить любые существующие данные сессии. После этого, мы обновляем CSRF-токен, чтобы предотвратить атаки подделки запроса. И, наконец, мы перенаправляем пользователя на страницу входа.
Теперь, чтобы разлогинить пользователя, вы можете использовать ссылку на /logout
в вашем представлении:
<a href="{{ route('logout') }}">Logout</a>
При нажатии на эту ссылку, пользователь будет разлогинен и перенаправлен на страницу входа.
Надеюсь, это поможет вам разлогинить пользователя при авторизации в Laravel. Если у вас возникнут какие-либо дополнительные вопросы, пожалуйста, дайте мне знать!