我发现大多数文章或答案都涉及将本地主机URL代理到其他端口上的本地主机后端服务器,或代理到未经身份验证的远程服务器(无需登录)。但是,我无法找到的是如何将请求一般代理到需要身份验证的远程服务器。
Web开发中的常见做法是创建应用程序的多个实例(beta / dev,集成/测试,生产等),以便您可以在代码投入生产之前逐步进行测试和部署。每个实例都有自己的后端服务器和通常可以通过公共网址(例如beta.app.com/api)访问的数据。
当api需要用户身份验证才能访问时,困难就来了。设置典型的代理将不起作用,因为来自本地主机的凭据将与远程服务器的凭据不同。
我想做的是能够将所有localhost api调用代理到一个远程服务器,这样我就不必在本地运行后端服务器,也不必针对远程数据测试本地代码(非常适合调试prod仅bug)。我不需要做的是将远程服务器的凭据硬编码到代理中,因为这对在本地运行该应用程序的任何其他人都无效(因此,没有添加授权cookie的硬编码代理头等)。
我认为解决方案不仅需要代理,而且还可以。假设我对前端和后端都具有完全控制权,并且可以进行任何必要的更改以完成这项工作。