示例#1
0
 /**
  * Inicialiar la sesión de usuario
  */
 private static function initSession()
 {
     $sessionLifeTime = self::getSessionLifeTime();
     // Timeout de sesión
     if (Session::getLastActivity() && time() - Session::getLastActivity() > $sessionLifeTime) {
         if (isset($_COOKIE[session_name()])) {
             setcookie(session_name(), '', time() - 42000, '/');
         }
         self::wrLogoutInfo();
         session_unset();
         session_destroy();
         session_start();
         return;
     }
     // Regenerar el Id de sesión periódicamente para evitar fijación
     if (Session::getSidStartTime() === 0) {
         Session::setSidStartTime(time());
         Session::setStartActivity(time());
     } else {
         if (Session::getUserId() && time() - Session::getSidStartTime() > $sessionLifeTime / 2) {
             $sessionMPass = SessionUtil::getSessionMPass();
             session_regenerate_id(true);
             Session::setSidStartTime(time());
             // Recargar los permisos del perfil de usuario
             Session::setUserProfile(Profile::getProfile(Session::getUserProfileId()));
             // Regenerar la clave maestra
             SessionUtil::saveSessionMPass($sessionMPass);
         }
     }
     Session::setLastActivity(time());
 }