code: public static String generateToken(byte[] secret, long seconds, String oid, String... payload) {
          long due = Life.due(seconds);
          List<String> l = new ArrayList<String>(2 + payload.length);
          l.add(oid);
          l.add(String.valueOf(due));
          l.addAll(C.listOf(payload));
          String s = S.join("|", l);
          return Crypto.encryptAES(s, secret);
      }
docs: Generate a token string with secret key, ID and optionally payloads
  @param secret the secret to encrypt to token string
  @param seconds the expiration of the token in seconds
  @param oid the ID of the token (could be customer ID etc)
  @param payload the payload optionally indicate more information
  @return an encrypted token string that is expiring in {@link Life#SHORT} time period