/** * @test * @group payloadJti */ public function checkThatJtiIsRecalculatedWheneverSubOrIatClaimsAreUpdated() { $payload = new Payload($this->request, $this->payloadUtilities, $this->payloadValidator, array('iat', 'exp', 'nbf', 'iss', 'jti')); $this->assertSame(sha1(1 . 'a1b2c3d4'), $payload->getClaim('jti')); $payload->setClaim('sub', 'subject'); $this->assertSame(sha1(1 . 'subject'), $payload->getClaim('jti')); $payload->setClaim('iat', 123456789); $this->assertSame(sha1(123456789 . 'subject'), $payload->getClaim('jti')); }
/** * Claims is an additional set of claims supplied by end-user * There are default claims in Payload class * If end-user supplies claims with same name as default claims, the default claims in the Payload class will be overwritten * * @param array $claims * @return string */ public function create(array $claims = array()) { $this->payload->setClaims($claims); $this->jws->setPayload($this->payload->getPayload()); $algo = $this->algoFactory->make(); $this->jws->sign($algo->getKeyForSigning()); $this->jti->create(['jti' => $this->payload->getClaim('jti'), 'exp' => $this->payload->getClaim('exp')]); return $this->jws->getTokenString(); }