我是一名前端开发人员,我即将开始编写我的第一个后端(使用 AWS,希望它不会是一场灾难)。我需要一些指导,可以是指向 SO 或教程或其他适当主题的链接 - 我已经搜索了很长时间,但我可能不知道如何搜索我需要解决的问题。
保持简单:我的客户卖书。为了补充这些书籍,我们目前正在开发一个应用程序。该应用程序的不同部分将对应不同的书籍,尽管该应用程序本身也有其价值(即您不必拥有一本书即可使用该应用程序)。这个想法是,如果用户拥有一本书,他将被允许从 AppStore 免费下载应用程序的相应部分。如果他不这样做,他必须使用 IAP 购买此内容以支付一定的金额。
我想出了以下简单的解决方案:
- 我们正在维护一个包含所有已售图书 ID 的数据库
- 我们允许用户注册并输入他们拥有的书籍的 ID
- 我们根据我们的数据库检查这些 id,并检查是否没有其他用户之前输入过这些 id
- 如果 id(s) 是 OK,我们允许用户下载与拥有的书相对应的内容。
如果他在这些设备上登录到他的帐户,则用户能够从多个设备(例如他的 iPad、他的 iPhone、他孩子的 iPhone...)下载内容。
但是,我想防止用户将他的帐户提供给朋友,然后他在他的设备上登录该帐户并下载内容,然后退出并使用该应用程序,即使他没有购买任何东西并且他不拥有这些书。
我的想法:
用户必须登录以验证他有权使用该内容,即使该内容已经在他的手机上(之前下载过)。用户只能同时登录到一个设备(登录到另一个设备后,他将从第一个设备注销)。严重缺点:用户只能在连接到 Internet 时使用该应用程序,即使他可能已经下载了所有内容。
通过执行应用内购买或购买书籍,用户有权获得例如 3 次下载。严重的缺点:如果用户删除了应用程序并想要重新安装它怎么办?重新下载购买的部件将计为一次下载,因为没有可靠的方法来检查设备是否与以前相同,至少对于 iOS 而言不是 - 有一个称为 vendorId 的东西,但事实证明它不可靠 - 例如更改系统更新。
以尽可能低的价格(而不是免费)为书主提供相同的内容,并以正常价格为其他人提供相同的内容。通过这种方式,我会将所有检查委托给 Apple(通过用户的 iCloud 帐户),因为解锁内容始终需要使用 IAP,并且一旦购买,Apple 将跟踪所有内容。
其他方法吗?请帮忙。
还有一件事需要考虑 - 我们希望有可能制作“课堂帐户” - 多个设备可以登录到同一个帐户并下载内容。客户端将决定允许多少设备并将此下载数量放入数据库。