Предотвратить злоупотребление продвижением, запретив регистрацию на том же устройстве от пользователя

Я разрабатываю приложение, которое предлагает скидки для новых зарегистрированных пользователей. Я хочу, чтобы пользователи не злоупотребляли этим путем запрета пользователям регистрировать другую учетную запись на своем устройстве. API, который я использую, уже проверяет, существует ли уже электронная почта и контактный номер (куда отправляется проверочный код), и предотвращает регистрацию. Я также использую UUID устройства и сохраняю его на сервере, чтобы проверить, зарегистрировался ли кто-либо с этого устройства.

Я провел некоторые исследования для iOS, и вот что я придумал:

  • DeviceCheck API можно использовать на iOS 11+.
  • UDID устарела.
  • IDFA может быть сброшен пользователем.
  • UUID можно изменить после удаления приложения или сброса пользователем своего устройства.

Каков наилучший способ избежать злоупотребления этой бизнес-логикой пользователем?

2 ответа

Вы можете использовать identifierForVendor и хранить на своем сервере. Так что вы можете проверить с ним и предотвратить несколько регистраций на одном устройстве.

Я столкнулся с той же проблемой 2 года назад, я решил проблему, сохранив значение в цепочке для ключей.

Я использовал ниже библиотеку для хранения значения в цепочке для ключей.

Ссылка: класс оболочки брелка

Пример кода для хранения UUID на устройстве:

let deviceId = UIDevice.currentDevice().identifierForVendor?.UUIDString ?? ""
// Saving Id in keyChain
KeychainWrapper.defaultKeychainWrapper().setString(deviceId, forKey: "CurrentDeviceId")

Чтение данных из цепочки для ключей.

let previousDeviceId = KeychainWrapper.defaultKeychainWrapper().stringForKey("CurrentDeviceId")

если previousDeviceId значение nil or blank затем приложение устанавливается на устройство в первый раз, иначе ваше приложение было установлено на устройство более одного раза.

Другие вопросы по тегам