code: protected boolean refreshToken() {
  		long now = System.currentTimeMillis();
  		boolean notExpired = tokenKeyExpires != null && tokenKeyExpires > now;
  		boolean canRefresh = tokenKeyNextRefresh != null &&
  				(tokenKeyNextRefresh < now || tokenKeyNextRefresh > tokenKeyExpires);
  		// token present and NOT expired
  		if (tokenKey != null && notExpired && canRefresh) {
  			Map<String, Object> result = getEntity(invokeGet(JWT_PATH, null), Map.class);
  			if (result != null && result.containsKey("user") && result.containsKey("jwt")) {
  				Map<?, ?> jwtData = (Map<?, ?>) result.get("jwt");
  				tokenKey = (String) jwtData.get("access_token");
  				tokenKeyExpires = (Long) jwtData.get("expires");
  				tokenKeyNextRefresh = (Long) jwtData.get("refresh");
  				return true;
  			} else {
  				clearAccessToken();
  			}
  		}
  		return false;
  	}
docs: Refreshes the JWT access token. This requires a valid existing token.
  Call {@link #signIn(java.lang.String, java.lang.String)} first.
  @return true if token was refreshed