code: public String getSessionKey() throws LimesurveyRCException {
          // Use the saved key if isn't expired
          if (!key.isEmpty() && ZonedDateTime.now().isBefore(keyExpiration)) {
              return key;
          }
  
          // Get session key and save it with an expiration set to 1 minute before the expiration date
          LsApiBody.LsApiParams params = new LsApiBody.LsApiParams();
          params.setUsername(user);
          params.setPassword(password);
          JsonElement result = callRC(new LsApiBody("get_session_key", params));
          key = result.getAsString();
          keyExpiration = ZonedDateTime.now().plusSeconds(keyTimeout - 60);
  
          return key;
      }
docs: Gets the current session key.
  
  @return the session key
  @throws LimesurveyRCException the limesurvey rc exception