public function getEncodedPayload(SignatureInterface $signature)
{
if (true === $this->isPayloadDetached()) {
return;
}
if (null !== $this->encoded_payload) {
return $this->encoded_payload;
}
$payload = $this->getPayload();
if (!is_string($payload)) {
$payload = json_encode($payload);
}
Assertion::notNull($payload, 'Unsupported payload.');
return $this->isPayloadEncoded($signature) ? Base64Url::encode($payload) : $payload;
}