public static function verify($token, $key) { $jose = new Jose(); $payload = $jose->configuration(JoseBuilders::compactDeserializationBuilder()->serializedSource($token)->key($key))->deserialization(); $syrupPayToken = self::fromJson(new SyrupPayToken(), json_decode($payload)); if (self::$checkValidationOfToken && !$syrupPayToken->isValidInTime()) { throw new \InvalidArgumentException(sprintf("%d as exp of this token is over at now as %d", $syrupPayToken->getExp(), time())); } return $syrupPayToken; }