Skip to content

Commit 06cce5a

Browse files
committed
Logout
1 parent 8cb316b commit 06cce5a

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Http\Controllers;
6+
7+
use App\Aws\CognitoIdentityProvider\AdminUserGlobalSignOut\AdminUserGlobalSignOut;
8+
use App\Aws\CognitoIdentityProvider\AdminUserGlobalSignOut\AdminUserGlobalSignOutPayload;
9+
use App\Models\User;
10+
use Illuminate\Http\RedirectResponse;
11+
use Illuminate\Support\Facades\Auth;
12+
use Illuminate\Support\Facades\Session;
13+
14+
final readonly class LogoutController
15+
{
16+
public function __construct(private AdminUserGlobalSignOut $adminUserGlobalSignOut)
17+
{
18+
}
19+
20+
public function __invoke(): RedirectResponse
21+
{
22+
if (Auth::check()) {
23+
/** @var User $user */
24+
$user = Auth::user();
25+
26+
$payload = AdminUserGlobalSignOutPayload::create($user->username);
27+
$this->adminUserGlobalSignOut->execute($payload);
28+
29+
Auth::logout();
30+
Session::invalidate();
31+
Session::regenerateToken();
32+
}
33+
34+
return redirect()->route('welcome');
35+
}
36+
}

src/routes/web.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
declare(strict_types=1);
44

55
use App\Http\Controllers\LoginController;
6+
use App\Http\Controllers\LogoutController;
67
use App\Http\Controllers\RegisterController;
78
use Illuminate\Support\Facades\Route;
89

@@ -27,4 +28,5 @@
2728

2829
Route::group(['middleware' => 'auth'], static function () {
2930
Route::view('/dashboard', 'dashboard')->name('dashboard');
31+
Route::post('/logout', LogoutController::class)->name('logout');
3032
});

0 commit comments

Comments
 (0)