在Vue中使用axios请求拦截的实现方法

2020-06-14 06:19:01易采站长站整理

axios.interceptors.request.use((request) => {
//获取请求的数据,这里是loginName和password
let REQUEST_DATA = request.data
//获取请求的地址,这里是/api/request
let REQUEST_URL = request.url
//设置签名并进行qs转换,且赋值给request的data,签名函数另外封装
request.data = qs.stringify(requestDataFn(REQUEST_DATA, REQUEST_URL))
//发送请求给后台
return request;
}, function (error) {
// Do something with request error
return Promise.reject(error);
});
//已封装好的签名函数
function requestDataFn(data, method) {
let postData = {}
//时间戳,时间戳函数不作展示,也是已封装好的
postData.timestamp = getNowFormatDate();
//请求用户的session以及secretKey信息,为空是未登录,登录后我把它存在localStorage中,这个存在哪里都可以,这里只作为例子。
postData.session = localStorage.getItem('session') || '';
postData.secretKey = localStorage.getItem('secretKey') || '';
//请求的地址,这里是/api/request
postData.method = method;
//请求的数据这里是loginName和password,进行base64加密
let base64Data = Base64.encode(JSON.stringify(data));
//设置签名并进行md5加密
let signature = md5.hex(postData.secretKey + base64Data + postData.method + postData.session + postData.timestamp + postData.secretKey);
//把数据再次进行加密
postData.data = encodeURI(base64Data);
postData.signature = signature;
return postData
}

这样我们就完成了对数据加密以及签名,这样再发送给后台。

注意:这里只作为例子展示,如果需要用到签名,如何签名,是前台和后台沟通的结果!

axios请求拦截的用处远远不止这样,具体如何使用,还需要在实际工作,实际项目中随机应变啦。

总结

以上所述是小编给大家介绍的在Vue中使用axios请求拦截的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!