public String logInCookie(String userName, String password, String wikiURL) {
    String client_id = HeliosConfig.getClientId();
    String client_secret = HeliosConfig.getClientSecret();
    String heliosBaseUrl = HeliosConfig.getUrl(HeliosConfig.HeliosController.TOKEN);

    CloseableHttpClient httpClient = HttpClients.createDefault();

    HttpPost httpPost = new HttpPost(heliosBaseUrl);
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();

    nvps.add(new BasicNameValuePair("grant_type", HeliosConfig.GrantType.PASSWORD.getGrantType()));
    nvps.add(new BasicNameValuePair("client_id", client_id));
    nvps.add(new BasicNameValuePair("client_secret", client_secret));
    nvps.add(new BasicNameValuePair("username", userName));
    nvps.add(new BasicNameValuePair("password", password));

    CloseableHttpResponse response = null;
    httpPost.setEntity(new UrlEncodedFormEntity(nvps, StandardCharsets.UTF_8));
    try {
      response = httpClient.execute(httpPost);

      HttpEntity entity = response.getEntity();
      JSONObject responseValue = new JSONObject(EntityUtils.toString(entity));

      EntityUtils.consume(entity);

      PageObjectLogging.log("LOGIN HEADERS: ", response.toString(), true);
      PageObjectLogging.log("LOGIN RESPONSE: ", responseValue.toString(), true);

      String token = responseValue.getString("access_token");

      String domian = Configuration.getEnvType().equals("dev") ? ".wikia-dev.com" : ".wikia.com";

      driver.manage().addCookie(new Cookie("access_token", token, domian, null, null));

      if (driver.getCurrentUrl().contains("Logout")) {
        driver.get(wikiURL);
      } else {
        driver.navigate().refresh();
      }

      verifyUserLoggedIn(userName);
      PageObjectLogging.log(
          "loginCookie", "user was logged in by by helios using acces token: " + token, true);
      return token;
    } catch (TimeoutException e) {
      PageObjectLogging.log("loginCookie", "page timeout after login by cookie", false);
    } catch (UnsupportedEncodingException | ClientProtocolException e) {
      PageObjectLogging.log("logInCookie", "UnsupportedEncodingException", false);
      throw new WebDriverException();
    } catch (JSONException e) {
      PageObjectLogging.log("logInCookie", "Problem with parsing JSON response", false);
      throw new WebDriverException();
    } catch (IOException e) {
      PageObjectLogging.log("logInCookie", "IO Exception", false);
    } finally {
      try {
        response.close();
      } catch (IOException | NullPointerException e) {
        PageObjectLogging.log("logInCookie", "IO Exception", false);
      }
    }
    return "";
  }