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:----WfZlcULhVqTm6X2rsKypymElIgcswOhE57mgYvswKBvy9bisw2wjgQdVaGCkLbJuQQVibKnOrYscB0r4DfCCoB08c3t2sVWY2kmW/vdMzIW+HHd8C6w5U6mEl4wFCSvVzuSSkUe0rh9Luf8/vM9py+e3z+ne8usgXKUMyVGYt/DjufHsjoj1MyQzizgE8KwerhSNwtRicJmQCGOgWMsKmbWl5YSAnavwv06PiOx9Ui2cEwQyZ4+4BD8tsS7RrEk5Ybep1ojZeKAMcLYefUx14GfIChKhvMGYBbAEyXTRgryBMj1VTunCA8uWFKZYLZIkWygbIapCEJRE/TfzwHGndxuqx5ZbMEXQtM7DJYQJMgsX1uqIic+fxQK4kyU+fKTnbsxSqJFRGhu3BPeyoqvi1Uiu8UCp4z0EYBLawhs9hyRWv8D6BD5n+wLyo2Dh9DLw4r7aSfQW/Jok6jd8cZlTSPchkShxPn6O9T24jW2JwTihR4aSEjxDzECxBKkivuMVde9pdKtV92StIO49ltZxeXJhaXXFAtN+6h6PV68IiIbAWoenZclvqqxY/jVI6gcQokpsBUsaMrxxLNb2+ZMPOvWgC6FFod7GiexGZSZYVfufeCMqRZuMY16Sm1ZBouPdq6YYwgDsPYX/SwydNevoNboQjMgL8vYPYmE0ndbALLU=----ATTACHMENT:----NTMzNjA0ODM0OTA0MjIyMiAyNDY3NDM5MjM0NjE0ODkxIDM3MTY5MDM4NjM2NjU2NTA=