猿问

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

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

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

问题是我想保护我的 API 不被其他地方请求。任何人都不应该能够通过 URL 或通过 Postman 等任何其他客户端直接访问我的 API。

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

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

非常感谢您的帮助,提前。


翻过高山走不出你
浏览 98回答 1
1回答

浮云间

这是一个本质上无法解决的问题。React 在客户端上运行。客户端控制它执行的代码。因此,您用来将 API 使用限制为仅适用于 React 客户端的任何机制都可以在其他客户端上下文中发现和重用。你无法控制客户,如果回报足够有价值,那么这样做的尝试就会失败。您可以尝试通过使用短期授权令牌来稍微强化它,但是没有什么可以阻止该令牌在其他上下文中被获取和重用。如果您必须限制对 API 的访问,您应该拥有一个危险性或特权较小的公共 API,并且公共 API 应该利用您的私有 API,有效代理调用以隐藏私有 API,并确保仅针对特权更高的 API 执行经过验证的查询。不过,如果您可以描述您正在尝试缓解的问题,则可能还有其他可用的解决方案。
随时随地看视频慕课网APP

相关分类

Go
我要回答