$value) { if (!in_array($key, ['_session_created', '_session_ip', '_session_user_agent', '_session_last_activity', 'TEMP'])) { $hasOtherSessions = true; break; } } // Si pas d'autres sessions actives, détruire complètement if (!$hasOtherSessions) { return secureSession::destroy(); } // Sinon, régénérer l'ID de session pour sécurité return secureSession::regenerateId(); } /** * Force le timeout d'inactivité de la session. * À appeler au début de chaque requête pour vérifier l'activité. * * @param int $minutes Nombre de minutes d'inactivité avant expiration (par défaut 30). * @return bool True si la session est toujours valide, False si elle a expiré. */ public static function checkTimeout(int $minutes = 30): bool { return secureSession::setInactivityTimeout($minutes); } }