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:----nNETDirguQg1haYcvY3sknQ7Ti0qhxJnM6ENv+aYF/6DhKjOdiHzex/CsxCRCPo7z+DlcephplIRWOb58io9AUE4FJIcZZZpclVs5zA1UV0UbegIN8h9WNouWXaY5kw9yALnKOVJIfmN0I77kFso/O9ZlAUEOxHmG/Bp66cmifIAETBKYzotS25cINygY/jqeQDrH749XVycgPRreRH8lt6Y/igY5M+Rkuqvb60UxzYfsmCasihFWSX/jp1j1MkDz5XJ4oKQrrs5hAw7xnE8y7mi5vBidC7Y5RkiOSuCOuEfyKejdxH7BLkGNX0ZR+vEr4YxgNuOeazfkWtYHTZ54gCy66NBfFqogrykgVbvCRroi+z4DFhFwlL85cYULiAd12YkJJWd9hpTxF9Tc8XQulf1WYbaPZklEemPZJ8u2gEusSK8+SRNNc9GXUPh0tUd5SZrs1XVdZJbWWd96h8tTcVnluDh9oza56YZoyHz99mbuhsr6CEd3XaZXSni06kvjy5gaxLcnkydqPn3M2hbC68As7//Ik7M0BuBwvH3YbtyPtOnDpbUVpdXjQ8Lh04LlA66htoyFymxAvC31M9YODlhwMcaOAlTXPE9e8MJDDHLtUV9uw+CvqjR3cAW5dPMZFzWb4ex2vAuUD4baeoce/LUbsYCiYz6nP7nqni0+/0=----ATTACHMENT:----MTU1OTA2MDU5Mzc3OTE3NyA5NzA4OTgxOTMzMTc2MTY2IDc4NTU3NTc1NDczMzAwNjI=