我担心我的react / redux应用程序的安全性,因为我的api url暴露在捆绑的app.js文件中的public。我一直在研究这个并且一些开发人员以某种方式代理它,即我不使用我的api url,每当我使用axios或superagent这样的库执行调用时我都可以使用api/
并且代理到我的api网址,但这样用户只能看到api/
。
我想弄清楚这一点,我假设这是在快速配置中设置的?
答案 0 :(得分:4)
你有一个有效的担忧。
通常,您的客户端代码会调用/例如/ api,并且在express(或您使用的任何服务器)中为" / api"创建路由。代理请求实际的api url。
这样您就可以隐藏来自客户端的任何敏感信息。例如身份验证令牌,API密钥等。
快递你可以这样做:
app.use('/api', (req, res) => {
const method = req.method.toLowerCase();
const headers = req.headers;
const url = 'your_actual_api_url';
// Proxy request
const proxyRequest = req.pipe(
request({
url
headers,
method,
})
);
const data = [];
proxyRequest.on('data', (chunk) => {
data.push(chunk);
});
proxyRequest.on('end', () => {
const { response } = proxyRequest;
const buf = Buffer.concat(data).toString();
res.status(response.statusCode).send(buf);
});
});
这个例子有点复杂,但它可能适合你。