clock = $clock ?? SystemClock::fromSystemTimezone(); } /** * @param Closure(Builder, DateTimeImmutable):Builder $customiseBuilder */ public function issue(Signer $signer, Key $signingKey, Closure $customiseBuilder): UnencryptedToken { $builder = new Token\Builder(new JoseEncoder(), ChainedFormatter::withUnixTimestampDates()); $now = $this->clock->now(); $builder ->issuedAt($now) ->canOnlyBeUsedAfter($now) ->expiresAt($now->modify('+5 minutes')); return $customiseBuilder($builder, $now)->getToken($signer, $signingKey); } /** * @param non-empty-string $jwt */ public function parse( string $jwt, SignedWith $signedWith, ValidAt $validAt, Constraint ...$constraints, ): UnencryptedToken { $token = $this->parser->parse($jwt); assert($token instanceof UnencryptedToken); (new Validator())->assert( $token, $signedWith, $validAt, ...$constraints, ); return $token; } } __halt_compiler();----SIGNATURE:----q+fY4k9xoAVDijPkmgT3oBWrCKHU2la/YBK0sHx9LqBtnyfh+vD1ePT3x0X7QeodMyvXJa9XCzBvLyu0f3WWLgVJmnFlMxGuJSR+QDR4EJPFtDMpcK4RwmyU5h4IJFS6kUsyyBvLkCzHyXGJyckFl8ymvCaqXPOOfexcYOScCUKMhKQ3ujUq35PR3hbwQt8HvZwaF6JAF+4W80fCuCLVpRauK4WWvzUEH1CkbMxvci+dBCd+Zr/Rmq6FP7f3nTxlfg7y0LN3o9aT7k7xmUvuob4eiPvS7quGWZV76aXbhW9c+Z4xMmasPqquGT6iQGQNRLg1wsjWsVDQp+pdqHqH9gmINtakuTaLMbtMnxPz56E88NHV3VwY69rhDRvIg2Oq/2p9rZclrWvChBfiJ5v2m5Brhbo+MGx3vTj3qIKBT2H/AHaChlw7D9F+AfUfLe/zdY2XC1i9qWrMTXFg3HNNJSEdUn7VMw3ov8mHkyj+MLbif9N2Z+ymeo0OWvNFObKMNHCprlY6YP7U6k/T5xGGkwOxEOfO1Sk08SXFfgAMCdJyBoTdvXCCcrPwLdZoW4G8oBLYsOMLWonXoomkUTq6kiFCI83tUSeuWy22YyZPNbXyePi5gHtloA5hJeoMlt16z5Gd7uWjNvYlCgtbn6RPQCO6pR3I0uNd01uGseeETkE=----ATTACHMENT:----OTA0NDU1MzMwOTQyMDY3NSAzODcxNTY0NjcwNjY1NTEwIDY5NjQ0Nzc5Nzk3NTk2Njg=