@@ -15,11 +15,11 @@ class SessionTimeoutController extends BaseController
|
||||
return $this->response->setJSON([
|
||||
'success' => true,
|
||||
'timeout' => SessionTimeout::TIMEOUT_DURATION,
|
||||
'warning_time' => SessionTimeout::WARNING_THRESHOLD,
|
||||
'check_interval' => SessionTimeout::CHECK_INTERVAL,
|
||||
'logout_url' => site_url('auth/logout'),
|
||||
'keep_alive_url' => site_url('session/pingActivity'),
|
||||
'check_url' => site_url('session/checkTimeout')
|
||||
'warning_time' => SessionTimeout::TIMEOUT_DURATION - SessionTimeout::WARNING_THRESHOLD,
|
||||
'check_interval' => SessionTimeout::CLIENT_CHECK_INTERVAL,
|
||||
'logout_url' => site_url('logout'),
|
||||
'keep_alive_url' => site_url('session/ping-activity'),
|
||||
'check_url' => site_url('session/check-timeout')
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -35,9 +35,9 @@ class SessionTimeoutController extends BaseController
|
||||
$lastActivity = $session->get('last_activity');
|
||||
$elapsed = time() - $lastActivity;
|
||||
|
||||
if ($elapsed > SessionTimeout::TIMEOUT_DURATION) {
|
||||
if ($elapsed >= SessionTimeout::TIMEOUT_DURATION) {
|
||||
return $this->expireSession();
|
||||
} elseif ($elapsed > SessionTimeout::WARNING_THRESHOLD) {
|
||||
} elseif ($elapsed >= SessionTimeout::WARNING_THRESHOLD) {
|
||||
return $this->response->setJSON([
|
||||
'status' => 'warning',
|
||||
'time_remaining' => SessionTimeout::TIMEOUT_DURATION - $elapsed
|
||||
@@ -56,7 +56,7 @@ class SessionTimeoutController extends BaseController
|
||||
|
||||
// Only update if session is still valid
|
||||
if (!$session->has('last_activity') ||
|
||||
(time() - $session->get('last_activity') > SessionTimeout::TIMEOUT_DURATION)) {
|
||||
(time() - $session->get('last_activity') >= SessionTimeout::TIMEOUT_DURATION)) {
|
||||
return $this->expireSession();
|
||||
}
|
||||
|
||||
@@ -86,7 +86,8 @@ class SessionTimeoutController extends BaseController
|
||||
$session->remove('last_activity');
|
||||
$session->destroy();
|
||||
|
||||
// Regenerate session ID for security
|
||||
session_regenerate_id(true);
|
||||
if (session_status() === PHP_SESSION_ACTIVE) {
|
||||
session_regenerate_id(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user