正如你所暗示的那样,在你的应用程序中为所有用户设置一个硬编码的密钥,从直觉上看,这似乎是一个非常糟糕的设计。如果不中断所有用户的应用程序,就无法收回该密钥,如果一个用户(例如,使API过载)无法轻松限制访问。如果这样做,您可能根本没有密钥,因为恢复密钥可能很简单。
在这种情况下,更好的设计是为每个用户颁发一个密钥,并在应用程序中包含一个要求,即用户在API工作之前输入自己的密钥。(或者,如果他们没有输入密钥,则会以某种方式限制访问的次数)
这意味着您需要:
找到一种为每个用户颁发密钥的方法,更新你的应用程序以允许输入API密钥,这听起来应该很熟悉,因为像谷歌API这样的许多服务都需要注册、获取密钥,然后将密钥放入你的应用程序/代码中。