generateSign = (params) => {
    const keys = Object.keys(params).filter(
      (key) => key !== 'format' || key !== 'callback'
    );

    // params has to be ordered alphabetically
    keys.sort();

    const o = keys.reduce((r, key) => r + key + params[key], '');

    // append secret
    return forge.md5
      .create()
      .update(forge.util.encodeUtf8(o + options.apiSecret))
      .digest()
      .toHex();
  }
Computes string for signing request

See https://www.last.fm/api/authspec#8