code: @SuppressWarnings("unused")
      public static boolean isTokenValid(byte[] secret, String oid, String token) {
          if (S.anyBlank(oid, token)) {
              return false;
          }
          String s = Crypto.decryptAES(token, secret);
          String[] sa = s.split("\\|");
          if (sa.length < 2) return false;
          if (!S.isEqual(oid, sa[0])) return false;
          try {
              long due = Long.parseLong(sa[1]);
              return (due < 1 || due > System.currentTimeMillis());
          } catch (Exception e) {
              return false;
          }
      }
docs: Check if a string is a valid token
  @param secret the secret to decrypt the string
  @param oid the ID supposed to be encapsulated in the token
  @param token the token string
  @return {@code true} if the token is valid