Esempio n. 1
0
 /**
  * @param string $uri
  * @param array  $payload
  *
  * @return ResponseInterface
  */
 private function signedPostRequest($uri, array $payload)
 {
     $header = ['alg' => 'RS256', 'jwk' => ['kty' => 'RSA', 'n' => Base64Url::encode($this->privateKey->getDetails()['rsa']['n']), 'e' => Base64Url::encode($this->privateKey->getDetails()['rsa']['e'])]];
     $protected = $header;
     $protected['nonce'] = $this->getLastNonce();
     $payload64 = Base64Url::encode(json_encode($payload, JSON_UNESCAPED_SLASHES));
     $protected64 = Base64Url::encode(json_encode($protected));
     $signed64 = Base64Url::encode($this->privateKey->sign($protected64 . '.' . $payload64));
     return $this->request('POST', $uri, ['json' => ['header' => $header, 'protected' => $protected64, 'payload' => $payload64, 'signature' => $signed64]]);
 }