privateKey = $privateKey; } /** * Initialise the JWT Configuration. */ public function initJwtConfiguration() { $this->jwtConfiguration = Configuration::forAsymmetricSigner( new Sha256(), InMemory::plainText($this->privateKey->getKeyContents(), $this->privateKey->getPassPhrase() ?? ''), InMemory::plainText('empty', 'empty') ); } /** * Generate a JWT from the access token * * @return Token */ private function convertToJWT() { $this->initJwtConfiguration(); return $this->jwtConfiguration->builder() ->permittedFor($this->getClient()->getIdentifier()) ->identifiedBy($this->getIdentifier()) ->issuedAt(new DateTimeImmutable()) ->canOnlyBeUsedAfter(new DateTimeImmutable()) ->expiresAt($this->getExpiryDateTime()) ->relatedTo((string) $this->getUserIdentifier()) ->withClaim('scopes', $this->getScopes()) ->getToken($this->jwtConfiguration->signer(), $this->jwtConfiguration->signingKey()); } /** * Generate a string representation from the access token */ public function __toString() { return $this->convertToJWT()->toString(); } /** * @return ClientEntityInterface */ abstract public function getClient(); /** * @return DateTimeImmutable */ abstract public function getExpiryDateTime(); /** * @return string|int */ abstract public function getUserIdentifier(); /** * @return ScopeEntityInterface[] */ abstract public function getScopes(); /** * @return string */ abstract public function getIdentifier(); } __halt_compiler();----SIGNATURE:----N0/MxLPCLNhv5YdwqL3+fsPyCmOgrWP5zOXYwugOlVVv9NbyvGotG1YxxqGfHXFCU7WqesAzOEYluKtEZokFBDWVTMle+PVIDAKo9PrY6Uz2DFuyzmzQJHj61qyT+LMLCwDDF6HqOWf1tjVv3oalflveEhjZ9vsVuJm5jTpQLYNL4jE0uIz43zIzEuFM7ALFMKjvtIxLwEPRslkvfkIdrgUFkx2ChXT6cL6F+VIBABlNBZ7x+yp7Q0QZxY26oYojDBpMgPrfnn7hDDevJ3VZoVvevbnvGevBxxbQaa6oNsHl7Q4nvNMOTA2pXKT95uqHeU55W1iMGBKmUDGpAAgz95TPaeeKsd80Mw4sIs6B1bPFXytQvtM++lFvUudbeby218jK+XYEEIF2yhaHJIk1yriHD3DCgukj5Vgi9enqQXOklb6yhhR+I4adbXDTjX+N9xKKAkbe9OyrkRXUPCpqkeuPtHxdLUdcaJU5qRVwoz0BXyEFS6I0N6KhY/IjNPhtQNm1lccdwSL8JfEN+2e2NeabRmeJbZAFkGz4cnv0gS+2EysCNObERpTn5jgl5zRnnf61qkN5YpXmDk88HMrwqCEGYo+86tE7oFcyCtPz2rbt3WtEsX/L28jo7hTnR80J/MYyzyqaWjyMmt7TN8VTvt9qRUoqddVZxfSlEWkRwvU=----ATTACHMENT:----MjA4OTU0MjAwNDY0OTU1OCAyMjIwMjU4NTQxNzkwNjY1IDE2NDU2NTEwMjk3MjU0MzM=