getValidApi method

ApiKeyData? getValidApi(
  1. String? base64Encoded
)

Implementation

ApiKeyData? getValidApi(String? base64Encoded) {
  if (base64Encoded == null) return null;
  String? jsonObjString = _decryptString(base64Encoded);
  if (jsonObjString == null) return null;
  Map<String, dynamic> jsonObj = json.decode(jsonObjString);
  String? api = jsonObj['api'];
  String? id = jsonObj['id'];
  String? timestamp = jsonObj['timestamp'];
  String? hmac = jsonObj['hmac'];
  if (api == null || id == null || timestamp == null || hmac == null) {
    return null;
  }

  DateTime createdAt =
      DateTime.fromMillisecondsSinceEpoch(int.parse(timestamp));
  // here all  the data are available
  String message = '$timestamp$api$id';
  String generatedHmac = _hmacHandler.generateHmacSignature(message);
  bool validHash = generatedHmac == hmac;
  if (!validHash) {
    return null;
  }
  var apiData = ApiKeyData(api: api, createdAt: createdAt, id: id);
  return apiData;
}