Files
expense/app/Http/Middleware/SessionTimeout.php
T

32 lines
758 B
PHP
Raw Normal View History

2025-03-05 13:44:58 +07:00
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
class SessionTimeout
{
public function handle(Request $request, Closure $next)
{
// Get last activity time
$lastActivity = session('lastActivityTime');
// Set logout time in minutes (30 minutes)
$timeout = 30 * 60;
if ($lastActivity && (time() - $lastActivity > $timeout)) {
Auth::logout();
session()->flush();
return redirect('/login')->with('message', 'Session expired due to inactivity.');
}
// Update session activity time
session(['lastActivityTime' => time()]);
return $next($request);
}
}