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;
 }