假设有一个 API 可以做一些有用的事情,人们每月付费才能使用。假设此 API 的端点如下:
https://www.example.com/api/GetMeaningOfLife
在发布到 API 时,客户端必须提供一个密钥来标识他们是 API 的付费客户。如果未提供密钥,API 将失败。
在 Web 应用程序的上下文中,为了确保密钥保密,可以只使用服务器端的 API,并将 API 调用的结果传递到生成的网页。这样,用户就无法在浏览器的开发者控制台中窥探以查找密钥,因为 API 消耗是在服务器上完成的。
但是,如果 API 意味着从前端(即 JavaScript)调用怎么办?如何使用密钥从 JavaScript 调用这样的服务,同时确保其他人不能只是从您的网站复制/粘贴密钥并开始在他们自己的网站上冒充您来访问您付费的 API?我有什么选择?