1

我正在开发一个为新注册用户提供折扣的应用程序。我想通过阻止用户在他们的设备上注册不同的帐户来避免用户滥用它。我使用的 API 已经在检查电子邮件和联系号码(发送验证码的位置)是否已经存在并阻止注册。我还使用设备 UUID 并将其存储在服务器中,以检查是否有人从该设备注册。

我对iOS做了一些研究,这就是我想出的:

  • DeviceCheck API 可用于 iOS 11+。
  • UDID 已弃用。
  • IDFA 可由用户重置。
  • 一旦卸载应用程序或用户重置了他/她的设备,就可以更改 UUID。

避免用户滥用此业务逻辑的最佳方法是什么?

4

2 回答 2

0

您可以使用 identifierForVendor 并存储在您的服务器中。这样您就可以检查它并防止在一台设备中进行多次注册。

于 2018-09-19T12:05:44.260 回答
0

两年前我也遇到过同样的问题,我通过在钥匙串中存储一个值来解决这个问题。

我使用下面的库将值存储在钥匙串中。

参考:钥匙串包装类

将 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,则应用程序第一次安装在设备中,否则您的应用程序安装到设备中不止一次。

于 2018-09-19T11:52:23.343 回答