/** * @param IJOSEHeader $header * @param IJWSPayloadSpec $payload * @param string $signature * @throws JWSNotSupportedAlgorithm */ protected function __construct(IJOSEHeader $header, IJWSPayloadSpec $payload = null, $signature = '') { $claim_set = null; if (!is_null($payload) && $payload->isClaimSet() && $payload instanceof IJWSPayloadClaimSetSpec) { $header->addHeader(new JOSEHeaderParam(RegisteredJOSEHeaderNames::Type, new StringOrURI('JWT'))); $claim_set = $payload->getClaimSet(); } parent::__construct($header, $claim_set); if (!is_null($payload)) { $this->setPayload($payload); } $this->signature = $signature; }
/** * @return array */ public function take() { $payload = $this->header->getType()->getString() === 'JWT' ? $this->claim_set : ''; return array($this->header, $payload, $this->signature); }
public static function serialize(IJOSEHeader $header) { $json = $header->toJson(); return JWTRawSerializer::serialize($json); }