是否可以构建一个旨在从 Web 前端使用的“付费”Web API?

问题描述 投票:0回答:1

假设有一个 API 可以做一些有用的事情,人们每月付费才能使用。假设此 API 的端点如下:

https://www.example.com/api/GetMeaningOfLife

由于 API 是“付费墙”,API 的使用者必须证明他们是 API 的付费客户,然后 API 才能工作。

构建 API 的一种简单方法是,在发布到 API 时,客户端必须提供一个密钥来标识他们是 API 的付费客户。如果未提供密钥,API 将失败。

在 Web 应用程序的上下文中,为了确保密钥保密,可以只使用服务器端的 API,并将 API 调用的结果传递到生成的网页。这样,用户就无法在浏览器的开发者控制台中窥探以查找密钥,因为 API 消耗是在服务器上完成的。

但是,如果 API 意味着从前端(即 JavaScript)调用怎么办?如何设计像这样的付费 API,以便通过 JavaScript 从前端调用它,同时也确保其他人不能只是从您的网站复制/粘贴一些密钥并开始在他们自己的网站上冒充您来访问您要支付 API 费用吗?有什么选择?

javascript web-services security jwt
1个回答
0
投票

不。为了在保持 API 密钥保密的情况下调用第三方 api,应改为发出服务器端请求(即:后端请求),然后该请求的响应应发送到您的前端/Web 客户端。

在前端发送的任何请求都将记录在浏览器开发工具的网络控制台中,您可以在其中获取有关请求的详细信息,包括任何授权标头。 enter image description here

为了保密您的密钥,最好在后端服务器上设置 API 请求,以便在后端安全地处理该请求,并通过现有的安全 API 集成将该请求的响应发送到前端在您的前端和后端之间。

额外提示包括:

  1. 将您的秘密密钥存储在后端的环境变量中
  2. 使用 API 网关或服务来管理和验证 API 请求
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.