REST API 只能通过我的 React 客户端访问

REST API only accessible through my React client

我正在构建一个 React.js 应用程序,它将与我在 Go 中构建的 REST API 交互。

React 将使用 Javascript Fetch API 将请求发送到我的 API。

问题是我想确保我的 API 不被其他地方请求。没有人应该能够通过 URL 或任何其他客户端(如 Postman)直接访问我的 API。

我知道 JWT 是什么,但这并不能解决我的问题,因为任何人都可以通过浏览器访问令牌,然后使用令牌继续在 React 客户端外部请求 API。

我进行了广泛的研究,但没有真正符合我的描述。

非常感谢您的帮助。

这是一个本质上无法解决的问题。 React 在客户端运行。客户端控制它执行的代码。因此,任何你用来限制 API 仅供你的 React 客户端使用的机制都可以在其他客户端上下文中被发现和重用。您无法控制客户,如果回报足够有价值,尝试这样做就会失败。

您可以尝试通过使用短期授权令牌来稍微加强它,但是没有什么可以阻止该令牌在另一个上下文中被获取和重用。

如果您必须限制对 API 的访问,您应该有一个 public API,它的危险性或特权较低,而 public API 应该利用您的私有 API,有效地代理隐藏私有 API 的调用,并确保仅针对更高特权 API 执行经过验证的查询。

不过,如果您能描述您正试图缓解的问题,可能还有其他可用的解决方案。