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

2023-07-08 21:25:14 +08:00
 X2031

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

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

1830 次点击
所在节点    程序员
15 条回复
estk
2023-07-08 21:33:52 +08:00
应该是可以读取硬件 id ,我遇到好几个银行 App 有这功能
flyqie
2023-07-08 21:34:21 +08:00
啥平台的 app 。

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

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

如果找不到实现方法,也可以考虑获取下存储权限,存储到某个隐秘位置...普通小白也破解不了
X2031
2023-07-09 21:40:29 +08:00
@rekulas 可以的 谢谢
ysy950803
2023-07-10 11:21:07 +08:00
不如换个思路?从服务端来控制,因为服务端是知道客户端 IP 的,限制匿名使用的 IP 就行了,一般情况下用户也不会频繁地变动网络环境,这样比获取设备 ID 靠谱,现在因为一些隐私法案,设备唯一标识都不让获取了,获取到都是用户可以重置的。
X2031
2023-07-10 21:57:45 +08:00
@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