平时我们写的地址为了方便开发,都是直观的看见地址的源头。但是这个地址是不能放到互联网上,一旦被不怀好意的人发现了接口的源地址,就会造成数据的泄露。那么互联网上的地址是什么样的结构呢?我们来看一看
画横线的地方是怎么生成的呢?以下代码就是需要前端做的修改
import { JSEncrypt } from "jsencrypt";
var rsa = {
encrypt: function (publicKey, data) {
// 使用公钥加密
var encrypt = new JSEncrypt();
encrypt.setPublicKey(
"-----BEGIN PUBLIC KEY-----" + publicKey + "-----END PUBLIC KEY-----"
);
var encrypted = encrypt.encrypt(data);
return encrypted;
},
};
// 格式化数据
function toFormData(obj) {
var query = "";
var name, value, fullSubName, subName, subValue, innerObj, i;
for (name in obj) {
value = obj[name];
if (value instanceof Array) {
for (i = 0; i < value.length; ++i) {
subValue = value[i];
fullSubName = name; // name + '[' + i + ']';
innerObj = {};
innerObj[fullSubName] = subValue;
query += toFormData(innerObj) + "&";
}
} else if (value instanceof Object) {
for (subName in value) {
subValue = value[subName];
fullSubName = name + "[" + subName + "]";
innerObj = {};
innerObj[fullSubName] = subValue;
query += toFormData(innerObj) + "&";
}
} else if (value !== undefined && value !== null) {
query += encodeURIComponent(name) + "=" + encodeURIComponent(value) + "&";
}
}
return query.length ? query.substr(0, query.length - 1) : query;
}
/**
* 网关访问地址
*/
var DOMAIN_ADDRESS = "你的网关地址";
/**
* 注册到网关的调用方应用所属的公钥,用于加密需要加密的参数
*/
var publicKey =
"公钥";
/**
* 注册到网关的调用方应用的key,作为唯一标识符
*/
var athenaAppKey = "唯一标识符";
/**
* 注册到网关的调用方应用的名字
*/
var athenaAppName = "名字";
var rsaAppKey = encodeURIComponent(rsa.encrypt(publicKey, athenaAppKey));
var rsaAppName = encodeURIComponent(athenaAppName);
export { DOMAIN_ADDRESS, rsaAppKey, rsaAppName, toFormData };
公钥以及调用方应用的名字,后端在进行接口注册的时候会自动生成,到时候找后端大哥要就可以了。