claim = $claim; $this->expectedValue = $expectedValue; } public function assert(Token $token): void { if (! $token instanceof UnencryptedToken) { throw ConstraintViolation::error('You should pass a plain token', $this); } $claims = $token->claims(); if (! $claims->has($this->claim)) { throw ConstraintViolation::error('The token does not have the claim "' . $this->claim . '"', $this); } if ($claims->get($this->claim) !== $this->expectedValue) { throw ConstraintViolation::error( 'The claim "' . $this->claim . '" does not have the expected value', $this ); } } }