getMatchingEmail static method

String? getMatchingEmail(
  1. String original,
  2. String check, {
  3. bool allowPlusAlias = false,
})

Checks if both email addresses original and check match and returns the match.

Set allowPlusAlias if plus aliases should be checked, so that name+alias@domain matches the original name@domain.

Implementation

static String? getMatchingEmail(
  String original,
  String check, {
  bool allowPlusAlias = false,
}) {
  if (check == original) {
    return check;
  } else if (allowPlusAlias) {
    final plusIndex = check.indexOf('+');
    final atIndex = check.lastIndexOf('@');
    if (plusIndex > 0 && atIndex > plusIndex) {
      // `name+alias@domain` only matches exactly `name@domain`, a prefix
      // check would let `ad+min@domain` impersonate `admin@domain`
      final withoutAlias =
          check.substring(0, plusIndex) + check.substring(atIndex);
      if (withoutAlias == original) {
        return check;
      }
    }
  }

  return null;
}