code: public GitkitUser validateToken(String token) throws GitkitClientException {
      JsonObject jsonToken = validateTokenToJson(token);
      if (jsonToken == null) {
        return null;
      }
      return new GitkitUser()
          .setLocalId(jsonToken.get(JsonTokenHelper.ID_TOKEN_USER_ID).getAsString())
          .setEmail(jsonToken.get(JsonTokenHelper.ID_TOKEN_EMAIL).getAsString())
          .setCurrentProvider(jsonToken.has(JsonTokenHelper.ID_TOKEN_PROVIDER)
              ? jsonToken.get(JsonTokenHelper.ID_TOKEN_PROVIDER).getAsString()
              : null)
          .setName(jsonToken.has(JsonTokenHelper.ID_TOKEN_DISPLAY_NAME)
              ? jsonToken.get(JsonTokenHelper.ID_TOKEN_DISPLAY_NAME).getAsString()
              : null)
          .setPhotoUrl(jsonToken.has(JsonTokenHelper.ID_TOKEN_PHOTO_URL)
              ? jsonToken.get(JsonTokenHelper.ID_TOKEN_PHOTO_URL).getAsString()
              : null);
    }
docs: Verifies a Gitkit token.
  
  @param token token string to be verified.
  @return Gitkit user if token is valid.
  @throws GitkitClientException if token has invalid signature