想象以下场景:
我已经构建了一个 API 和一个 Web 应用程序。用户将通过 Web 应用程序注册,并收到唯一的 API 密钥。然后他们可以为他们的账户购买“信用”,这只是美元的 1:1 表示。
当用户执行 API 调用时,他们会传入他们的 API 密钥。此键用于识别客户,并根据需要减去信用。
这里有一个明显的问题。如果用户从他们自己的服务器执行这个调用,并且密钥是保密的,那么一切都很好。但是,我将如何处理没有自己服务器的客户?例如,假设一个用户在没有服务器的情况下向 Play 商店发布了一个简单的 Android 应用程序,并且想要集成我的产品。密钥必须保留在客户端。然后,恶意用户可以对应用程序进行反混淆,并可能执行未经授权的 API 调用,从而花费密钥所有者的信用。
如何解决这个问题?有没有办法处理这种情况?