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

EasonJim 阅读:100 2025-06-02 22:19:02 评论:0

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

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

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

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

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

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

请您参考如下方法:

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

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

如果您必须限制对 API 的访问,您应该有一个危险性或特权较低的公共(public) API,并且公共(public) API 应该使用您的私有(private) API,有效地代理调用以隐藏私有(private) API,并确保只有经过验证的查询才会针对特权更高的 API 执行。

但是,如果您可以描述您试图缓解的问题,那么可能还有其他可用的解决方案。


标签:React
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号