fix logout issue
This commit is contained in:
@@ -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');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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,
|
|
||||||
],
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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
@@ -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');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user