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:----nMtAoKhOLFaOdH6YiG2lirYUBoZQfsipQvLjUMqUTvr39nLt5NZ9o+VBkOh4Lq8tEHM1MKm6gC8tLxZZWO5ut8kePT0UDJxvwt7gX0Rgb4DB8I+2CzH9oaQxjE3EtPM1twmnVG1ONzidSOxUe+eVwPCotcWsnPGzdEImsRUk42rqu6Q6KKTOaYu9nSK0k3CkCa9B2l6R7RvysskhbBZa6iSyG136ysHz9gpDlEgXINV1/yIkrXJyZIyjZS86TTJPQ3lRm7ML3VSNxnJ6EsX9NFFzRHe0UYi59SGfnx6d5LIilnPpQ04jwZOM9w7IOvJ678VCHIdoA2pO4tud6ZGQZh3C4GgeHRgIuHycJq20XW2CP9x7pbLnE8YZi8j6Ps8wPkW2o99u7rGm984OKyMqgzXDhKmzJL7t4sulRwXo5gpi91Ax08549hZrmZcpTnkSYFVgDh/lwqppCg0G3a/72Cu9msP6vTAZVhgiCXi6Jgzj0TT+BNR67ojpk27s5lrgrLor3q21WzqhAjbmxToS1MihE2uTTrSRMYgnJWAVBmcxiMnKMrhBHCb4+C+PGPVo0KWzpE/IH1pa+/o+yfwWLCoIrqnM/VjNqDImM0kRu6FO3oUnst58bKLPbubfmA8nFfI0GJX6OcN8ln3SgyulerulQX9L5EEeVmf8O1LxJyw=----ATTACHMENT:----NDAzMzI5ODAxMjM3MTQ4MiAxMTg2MTkxMTY3MTI3ODU1IDkyMTI3MjQ5MzkyMzQ2NjQ=