code: private function validateSessionLifetime(User $user): void
      {
          if (!$this->session->isStarted()) {
              return;
          }
  
          /** @var Config $config */
          $config = $this->framework->getAdapter(Config::class);
          $timeout = (int) $config->get('sessionTimeout');
  
          if ($timeout > 0 && (time() - $this->session->getMetadataBag()->getLastUsed()) < $timeout) {
              return;
          }
  
          if (null !== $this->logger) {
              $this->logger->info(
                  sprintf('User "%s" has been logged out automatically due to inactivity', $user->username),
                  ['contao' => new ContaoContext(__METHOD__, ContaoContext::ACCESS, $user->username)]
              );
          }
  
          throw new UsernameNotFoundException(
              sprintf('User "%s" has been logged out automatically due to inactivity.', $user->username)
          );
      }
docs: Validates the session lifetime and logs the user out if the session has expired.
  
  @throws UsernameNotFoundException