一般的我们有一个路由或者接口是暴露在外的,比如80。
如果我们这个路由有我们的秘钥信息是不是会有些不安全了,比如短信接口秘钥……等其他一些接口的秘钥。
这时我们就可以创建另外一个服务,让它只能被本机调用,不暴露在外。这样是不是就安全一些了。
试想一下数据库的接入是不是就是这么个道理,数据库的端口我们没有暴露在外吧。
我们利用nodejs来创建请求向内部发送请求
这里我是用的是axios模块来发送请求
安装:npm install axios --save
const express = require('express')
const axios=require("axios");
// 1.实体化对象
const app = express()
// 2.监听端口//用于内部调用,这样更加安全
app.listen(8000)
app.get('/api',(req, res)=>{
axios.get('http://127.0.0.1:9000').then(response => {
console.log(response.data);
res.send(response.data);
})
.catch(error => {
res.send("err");
console.log(error);
});
})
app.get('/',(req, res)=>{
res.send('请求成了');
})
在创建一个用于内部存储密码的路由
const express = require('express')
// 1.实体化对象
const app = express()
// 2.监听端口//用于内部调用,这样更加安全
app.listen(9000)
app.get('/',(req, res)=>{
console.log("有人请求秘钥");
res.send('成功请求9000端口的秘钥');
})
而且这种方法可以衍生出很多好玩的东西,比如我们需要强加密的数据就可以多做几层保护,也可以将复杂的路由分隔开,大家一起写,每个人负责自己的部分
想想真是完美