我正在开发一款为新注册用户提供折扣的应用程序。 我想通过阻止用户在他们的设备上注册不同的帐户来避免用户滥用它。我使用的 API 已经在检查电子邮件和联系电话(发送验证码的地方)是否已经存在并阻止注册。我还使用设备 UUID 并将其存储在服务器中以检查是否有人已从该设备注册。
我对 iOS 做了一些研究,这是我想出的:
- DeviceCheck API 可在 iOS 11+ 上使用。
- UDID 已弃用。
- IDFA 可以由用户重置。
- UUID 可以在卸载应用程序或用户重置他/她的设备后更改。
避免用户滥用此业务逻辑的最佳方法是什么?
最佳答案
我在 2 年前遇到过同样的问题,我通过在钥匙串(keychain)中存储一个值解决了这个问题。
我使用下面的库将值存储在钥匙串(keychain)中。
将 uuid 存储到设备的示例代码:
let deviceId = UIDevice.currentDevice().identifierForVendor?.UUIDString ?? ""
// Saving Id in keyChain
KeychainWrapper.defaultKeychainWrapper().setString(deviceId, forKey: "CurrentDeviceId")
从钥匙串(keychain)中读取数据。
let previousDeviceId = KeychainWrapper.defaultKeychainWrapper().stringForKey("CurrentDeviceId")
如果 previousDeviceId
值为 nil 或空白
,则应用会第一次安装到设备中,否则您的应用会多次安装到设备中。
关于ios - 通过阻止用户在同一设备上注册来防止滥用促销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404691/