APP 匿名登陆如何有效限制用户的使用次数

309 天前
 X2031

APP 使用的是匿名登陆,提供免费使用次数。用户不卸载的情况下可以正常获取 userid 通过 userid 判定当前免费次数超过免费次数会提示订阅 PRO 服务 当用户卸载重装之后 userid 会被重置导致免费次数判定无效

有没有好的方案能解决这个问题

1659 次点击
所在节点    程序员
15 条回复
estk
309 天前
应该是可以读取硬件 id ,我遇到好几个银行 App 有这功能
flyqie
309 天前
啥平台的 app 。

用啥开发的?
shinsekai
309 天前
用 keychain 保存啊
X2031
309 天前
@flyqie Flutter 安卓、ios 双平台 。主要技术栈是 Firebase
X2031
309 天前
@shinsekai 我了解下谢谢
mikicomo
309 天前
可以获取设备 id 的吧
rekulas
308 天前
结合一些硬件信息判断吧,比如安卓上有安卓 id,imei 等,普通用户也修改不了
当然遇上非普通用户这些都没意义,只有登录限制
X2031
308 天前
@rekulas imei 好像获取不了了
hellomynameis
308 天前
硬件标识符现在 iOS 、Android 两大平台都禁止访问了,剩余的一切标识符都能重置,只有手机号/信用卡这种验证比较可靠

但是 iOS 上可以通过一个免费 IAP 解锁免费试用,这个内购每个账号只能购买一次,然后向苹果的内购服务器验证
X2031
308 天前
@hellomynameis 是的我看文档基本都不能获取了,能取到的只有广告 id ,用户可以重置 id 。看来在匿名登录的情况下想实现控制免费次数有点难了
rekulas
308 天前
@X2031 那就安卓 ID, 这个就是 google 提供给 app 用来识别的,ios 貌似也有类似 id
如果连这个都修改了的,那就不用考虑,肯定不是普通用户
https://developer.android.com/reference/android/provider/Settings.Secure
rekulas
308 天前
不过貌似安卓 id 可信度不够高
另外好像有个方法可以将数据保存在安卓系统里,卸载应用重装也可以读取,我在一些广告 sdk 里见过

如果找不到实现方法,也可以考虑获取下存储权限,存储到某个隐秘位置...普通小白也破解不了
X2031
308 天前
@rekulas 可以的 谢谢
ysy950803
307 天前
不如换个思路?从服务端来控制,因为服务端是知道客户端 IP 的,限制匿名使用的 IP 就行了,一般情况下用户也不会频繁地变动网络环境,这样比获取设备 ID 靠谱,现在因为一些隐私法案,设备唯一标识都不让获取了,获取到都是用户可以重置的。
X2031
307 天前
@ysy950803 感觉比用广告 id 还不靠谱,ip 不是随时都在变么,就 wifi 切换到 SIM 卡的网络 IP 不就变了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955167

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX