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:----O8jeXuXqJJp2K8Cb+/0k6gNNYPEb+h75Fo6xriiccel657xylDJufno1VDM5Oyt7qed0Uqm9FCfNm1AuHXO2wrVmb17LXnbQoVOOgm5ZFrx+PtrFQBLdCKu6RdIj2lIoxAJ7B05S6TU+lImBhBaCUtaPtYpy2mS0OxWK+eOzsEXgIGxlOQyrauZXPWj6+6OWKvxHlzOlGU2WLJHnbgkob9oukNjY5Areb5tNJvN5KiRoz+gAgk8dRp3t/N2D69eTfY7O7PezxCiJIehnGSrbtJL4J4MlX832Jd2q3OVUTKTFG7q57SDF8ZxDdPAjLGuNk1M8opAdHdl+wYb7eW7A+F/OJPz0GR2sRGBUrJaQXgBR90XmOR/mlo2N8pukpI27QP25jlAJL+9VefEfOl70D7sZovWacak443gYRVg8tTLJEl2nkbtKyG1beW7u5dBhmlugKD10rAsbjd/QyehT5TnPWoUGZZy2yWmuViLG+lNuyxmSjyCUslnK83Zkn1TV5RmcKUFzAljOgbbdatMYDCFokxof50Wa18ioRMEGxvUqL3WyBaPEQ72X4nkshgKLV4Ag7huQa3Nj+g5dhdwtRvfuclBc/7Ij4eC0xmRtNj9UCC6JZXE4wr/BWqlzXwSf+yzxzKwkG9CrIHgqQUxd8PNI4UVT6rl39e7RpGPI9m4=----ATTACHMENT:----MzAzMTI4MzY3ODY4NjI2NCA0NDU3MjE3NjgxMTYxMTg4IDI0ODM5ODkzNjYzODI0MzM=