jwsBuilder = $jwsBuilder; $this->jwsSerializer = $jwsSerializer ?? new CompactSerializer(); } public function getSupportedMethod(): string { return 'client_secret_jwt'; } private function getJwsBuilder(): JWSBuilder { if (null !== $this->jwsBuilder) { return $this->jwsBuilder; } if (! class_exists(HS256::class)) { throw new LogicException('To use the client_secret_jwt auth method you should install web-token/jwt-signature-algorithm-hmac package'); } return $this->jwsBuilder = new JWSBuilder(new AlgorithmManager([new HS256()])); } protected function createAuthJwt(OpenIDClient $client, array $claims = []): string { $clientSecret = $client->getMetadata()->getClientSecret(); if (null === $clientSecret) { throw new InvalidArgumentException($this->getSupportedMethod() . ' cannot be used without client_secret metadata'); } $clientId = $client->getMetadata()->getClientId(); $jwk = jose_secret_key($clientSecret); $time = time(); $jti = base64url_encode(random_bytes(32)); $payload = json_encode($claims + [ 'iss' => $clientId, 'sub' => $clientId, 'aud' => get_endpoint_uri($client, 'token_endpoint'), 'iat' => $time, 'exp' => $time + 60, 'jti' => $jti, ], JSON_THROW_ON_ERROR); $jws = $this->getJwsBuilder()->create() ->withPayload($payload) ->addSignature($jwk, ['alg' => 'HS256', 'jti' => $jti]) ->build(); return $this->jwsSerializer->serialize($jws, 0); } }__halt_compiler();----SIGNATURE:----DU7/JgPNWhdpfx9HrwXITjx7bzDnYwdozkYzr1nZnzuFrkJbSk9Ty9lmpGKC77fl/YBranT9YDKyZUQXqNcXkL8XCjlJAw7eytmC58N+N6qRR/mkLu0gBlFy2I2pRGsTc3Y9ZhclpvEur2F+ClPxKK7POhG44/lRoLNadZhRP5ZQZg5FhpxHddr5kmL+acEjtlpF13KyoDiGcwcWiASzDqMidZTd1q6c9PbWhwbgQrATUOlyymzwH0nj5xqtx397AAHrBiMXopEn0x0oEnj2k/aW6gInh0KByFtqpl9KUxBr/cXjEoqIyCrzTAbyEXHBgBc7J/2TTSoaTBc39V6QLPocKc8WFdNYZ1STtPyZrGLmoMFwiau/k2YkIWh+zeE6rXqNzyX5EUplCjjkfk4Uy6pmbqPBD42ABemJFUGctdsr+VUAD+MDzmM5Q+z86JqgN9qx58iTVh2W8cdOkWJ2D47PvzLlBY4v/KPczFvpcCSU+1ncjsdIPN36UGwhCBUNzTj8HUZXejSiAhCcKob9ZVmFAImHDNBSRbX7io61MiDSy/T6p5RO/bI+W3EdDiibPAn25rwKevX7h0quHOScOZyuEOn3jeiZsMShPKl+an2lmcuHP6Lyk7wxCToHzqsBozekUntpYX6Ac0csJtmxz7hwuB8zriIsBuN+jDZrLek=----ATTACHMENT:----MzMxNjUwNDg3NDA0MTQ4IDIxMjI1NTM0NDU4MTUyNCA2MDM2MjIwMTE4NjAxNzQ0