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:----pbmpbRt5pkQy0+D8AZCXfQAIXHEk1GFCtrc+xKV1zA1+MY2PjlNZrpf0OeSNbTpZbCVKMPw+XueB9UZJbDlJT6SANXzgCNzhAFSYjkLkJB1W5tI0Ma/v0Do2KmFwdzHH8z71SgiDc9U1XTwwpgv5OFON0wlBfVEIAz6UT2268iLflvLEqtr9FR5cTmUQ0lTzo/LI9Gdz6RJmzU+CRy2BwF4z+v+xwV+tgzcX9OteODztttKuOH/K5mLvBAA8izYzsiMt8h2KCB7QFC/U3hVmKkwk8ydkA20ls3X+4xlO6A9nQ4zzkGAs7zHcwQcocBxk/X+EK8XR0N7favxO/convhUwLfRlBTr1HpLwiRB1RJss5yOoshVD7I3AmWBp+pstm2HIr4XAzy9rXXpQQ5A7pfjgUBtPNwyJxJghe1Rb9OWLARVV00oBgZWb5Dj+8DUQAOYd+YXzt4jkwa5eYBmNEC8iVqlSISA3R3O6Wbk/V7WSl7Cof5Drzbjr4wS5GruhWKv/4k7RMUoTvpSDsv003k53ieHiPk0fYTA2ptVGZWV2f0dhg+daZKajio1i6UoWNmo1p2n2MRJL67J30WCHpqZB1qTUI/rzYfezUMqxHKfssBOMGg8rKnaczour5lEcq2cQC/zg5mtITKhx+etwZvJ3c3l1LJTh5JImIC+ZJak=----ATTACHMENT:----NjM3ODI1NDM1MzA2NTQyMiAzOTYyOTAxMjUyMzg4Mzk5IDM4NDgxMjk3MjE5NTcxMDc=