Ejemplo n.º 1
0
 /**
  * @param RestClient $client
  */
 public function authenticateClient(RestClient $client)
 {
     $subscribers = [['subscriber' => new UrlSignature(), 'definitions' => $this->query], ['subscriber' => new HeaderSignature(), 'definitions' => $this->headers]];
     $authorization = ['clientId' => $this->clientId, 'nonce' => substr(sha1(uniqid(microtime(), true)), 0, 16), 'timestamp' => time()];
     if (!is_scalar($this->data)) {
         $authorization = array_merge($authorization, Utils::flattenArray(Utils::objectToArray($this->data), 'data.'));
     } else {
         $authorization['data'] = $this->data;
     }
     foreach ($subscribers as $subscriber) {
         if (empty($subscriber['definitions'])) {
             continue;
         }
         $this->addGenerator($subscriber['subscriber'], $subscriber['definitions'], $authorization);
         $client->getClient()->getEmitter()->attach($subscriber['subscriber']);
     }
 }