fix logout issue

This commit is contained in:
Jagad R R
2025-05-09 18:39:17 +07:00
parent 1b3f439ddd
commit 0041a9fd48
7 changed files with 9 additions and 99 deletions
@@ -123,23 +123,17 @@ class LoginController extends Controller
{ {
$user = Auth::guard('admin')->user(); $user = Auth::guard('admin')->user();
if (!$user) { if ($user) {
Auth::guard('admin')->logout(); // Log activity hanya jika user valid
return redirect()->route('admin.login'); AuditTrailHelper::AuthAttempt('Logout', 'User (' . $user->username . ') Logged out from the System');
} }
// Log activity
AuditTrailHelper::AuthAttempt('Logout', 'User (' . $user->username . ') Logged out from the System');
try { try {
// Logout from admin guard
Auth::guard('admin')->logout(); Auth::guard('admin')->logout();
} catch (Exception $e) { } catch (Exception $e) {
// Fallback to web guard if admin logout fails
Auth::guard('web')->logout(); Auth::guard('web')->logout();
} }
// Redirect to admin login
return redirect()->route('admin.login'); return redirect()->route('admin.login');
} }
} }
-36
View File
@@ -1,36 +0,0 @@
<?php
namespace App\Listeners;
use Illuminate\Auth\Events\Login;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use App\Models\LoginLog;
class LogLoginActivity
{
/**
* Create the event listener.
*/
public function __construct()
{
//
}
/**
* Handle the event.
*/
public function handle(Login $event): void
{
// Ambil data user yang login
$user = $event->user;
// Simpan log login
LoginLog::create([
'user_id' => $user->id ?? null,
'ip_address' => request()->ip(),
'user_agent' => request()->userAgent(),
'status' => 'login',
]);
}
}
-36
View File
@@ -1,36 +0,0 @@
<?php
namespace App\Listeners;
use Illuminate\Auth\Events\Logout;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use App\Models\LoginLog;
class LogLogoutActivity
{
/**
* Create the event listener.
*/
public function __construct()
{
//
}
/**
* Handle the event.
*/
public function handle(Logout $event): void
{
// Ambil data user yang logout
$user = $event->user;
// Simpan log logout
LoginLog::create([
'user_id' => $user->id ?? null,
'ip_address' => request()->ip(),
'user_agent' => request()->userAgent(),
'status' => 'logout', // Kolom tambahan untuk menandakan logout
]);
}
}
-6
View File
@@ -18,12 +18,6 @@ class EventServiceProvider extends ServiceProvider
Registered::class => [ Registered::class => [
SendEmailVerificationNotification::class, SendEmailVerificationNotification::class,
], ],
\Illuminate\Auth\Events\Login::class => [
\App\Listeners\LogLoginActivity::class,
],
\Illuminate\Auth\Events\Logout::class => [
\App\Listeners\LogLogoutActivity::class,
],
]; ];
/** /**
+2 -2
View File
@@ -272,7 +272,7 @@
}); });
</script> </script>
<script> {{-- <script>
let logoutTimer; let logoutTimer;
function resetLogoutTimer() { function resetLogoutTimer() {
@@ -295,7 +295,7 @@
document.addEventListener('keydown', resetLogoutTimer); document.addEventListener('keydown', resetLogoutTimer);
resetLogoutTimer(); resetLogoutTimer();
</script> </script> --}}
<script> <script>
const periode = document.getElementById('periode'); const periode = document.getElementById('periode');
@@ -4,14 +4,8 @@
<i class="fas fa-user"></i> My Account <i class="fas fa-user"></i> My Account
</a> </a>
<div class="dropdown-divider"></div> <div class="dropdown-divider"></div>
<a class="dropdown-item dropdown-footer" href="{{ route('admin.logout.submit') }}" <a class="dropdown-item dropdown-footer" href="{{ route('admin.logout.submit') }}">
onclick="event.preventDefault(); Logout Account
document.getElementById('admin-logout-form').submit();">Logout </a>
Account</a>
<form id="admin-logout-form" action="{{ route('admin.logout.submit') }}" method="POST" style="display: none;">
@csrf
</form>
</div> </div>
+1 -1
View File
@@ -32,7 +32,7 @@ Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {
Route::post('/login/submit', [LoginController::class, 'login'])->name('login.submit'); Route::post('/login/submit', [LoginController::class, 'login'])->name('login.submit');
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login'); Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
// Logout Routes. // Logout Routes.
Route::post('/logout/submit', [LoginController::class, 'logout'])->name('logout.submit'); Route::get('/logout/submit', [LoginController::class, 'logout'])->name('logout.submit');
}); });