带有专用数据服务器的Reactjs/Express应用程序

带有专用数据服务器的Reactjs/Express应用程序,reactjs,express,react-router,Reactjs,Express,React Router,我正在编写我的第一个React/Express应用程序。我有一个数据服务器api在端口3001上与postgres通信,工作正常。我在端口3000上的web组件向此发出请求,所有这些都在本地正常工作。对于部署,我已将端口3000反向代理到所需的域。我的问题是,我希望保持服务器api的私有性,但由于客户端发出服务器请求,它也需要公开,我不希望这样做。 在API请求通过web服务器而不是直接从客户端路由的情况下,我是否可以使用一种简单的部署模式?您将永远无法避免客户端发出的请求以及在网络流量中可见的

我正在编写我的第一个React/Express应用程序。我有一个数据服务器api在端口3001上与postgres通信,工作正常。我在端口3000上的web组件向此发出请求,所有这些都在本地正常工作。对于部署,我已将端口3000反向代理到所需的域。我的问题是,我希望保持服务器api的私有性,但由于客户端发出服务器请求,它也需要公开,我不希望这样做。
在API请求通过web服务器而不是直接从客户端路由的情况下,我是否可以使用一种简单的部署模式?

您将永远无法避免客户端发出的请求以及在网络流量中可见的请求。如果要从客户端屏蔽实际的数据服务器API,则需要在Express中编写一个代理,以便将API请求转发到数据服务器。这只会使实际的数据服务器API变得模糊,但如果用户查看网络流量并找到URL,仍然可以通过代理访问它。@SteveVaughan非常有意义,谢谢。我在服务器上有COR而不是代理,因此如果我设置为仅接受web域,这将可靠地防止“未经授权”的访问吗?嗯,我不确定它是否会,您可能仍然发现可以使用curl或类似的方法访问端点。如果您的数据服务器可能的话,更好的方法是实现某种形式的身份验证,例如基本身份验证,以防止滥用。像这样的东西可以用。“这真的取决于你在建什么,尽管我想是这样的。”史蒂夫沃恩:太好了。CORS仅作为第一个过滤器,然后通过https进行基本身份验证以将其锁定。它不需要超级安全,我只是不想要我没有授权的随机额外流量。谢谢你的帮助。