/**
  * @param string $consumerKey
  * @param string $privateKey
  * @return Token
  * @throws ResponseException
  * @throws UnableToCreateHashException
  */
 public function requestTokenFromMyIsset($consumerKey, $privateKey)
 {
     $payload = $this->payloadFactory->post('/api/login');
     $time = time();
     $hash = crypt($time . '' . $privateKey . '' . $consumerKey, '$6$rounds=9001$' . $consumerKey . '$');
     if ($hash === '*0' || $hash === '*1') {
         throw new UnableToCreateHashException();
     }
     $payload->setHeader('Content-Type', 'application/json');
     $payload->setPostData('consumer_key', $consumerKey);
     $payload->setPostData('time', $time);
     $payload->setPostData('hash', $hash);
     $response = $this->connection->sendPayload($payload);
     $statusCode = $response->getStatusCode();
     if ($statusCode >= 200 && $statusCode < 300) {
         return new Token($response->getJsonResponse()['token']);
     } else {
         throw new ResponseException($response);
     }
 }