vue项目使用 md5加密

2022-07-25 14:19:17

vue项目使用 md5加密

  • 安装:npm i --save js-md5
  • 作用:就是针对前端请求的参数添加唯一的标志,还有进行单次加密
  • 每一次请求之中,在浏览器那边都会生成一个标志 (也就是 sign && _t)
    在这里插入图片描述
  • 因此,我们在路由拦截的时候,根据不同的请求,把对应的数据 + Query String Paraments 这个对象的下的(_t && sign ),一起组合为一个对象,再发送到后端即可!

处理这唯一标志 sign.js

import Md5from'js-md5'const salt="cmas"// 针对不同的参数 组合为一个请求的对象 返回!constgetSign=function(params){// console.log('get请求的参数',params);let signStr="";let keyArray=newArray();
    Object.keys(params).forEach(function(key){
        keyArray.push(key);});

    keyArray.sort();for(let i=0;i<keyArray.length;i++){
        Object.keys(params).forEach(function(key){if(key== keyArray[i]){
                signStr+= params[key];}});}
    signStr+= salt;returnMd5(signStr);}constpostSign=function(data){if(typeof data==='object'){returngetSign(data)}else{let tmpArray= data.split("&");var params={};for(let i=0;i<tmpArray.length;i++){var tmp= tmpArray[i].split("=");
            params[tmp[0]]= tmp[1]}returngetSign(params);}}export{
    getSign,
    postSign}

请求拦截之中

import{getSign,postSign}from'@/utils/sign.js'//请求拦截
request.interceptors.request.use(function(config){//headers 加上From参数,方便后端判断请求来源
    config.headers.From="cmas-ui"if(JSON.parse(localStorage.getItem("token"))){
        config.headers.Token=JSON.parse(localStorage.getItem("token"));}//处理 ie浏览器之中 请求缓存问题if(config.method=='post'){if(config.url!="/xd/loaninfoBatchApply/uploadFile"){
            config.headers= Object.assign(config.headers,{'Content-Type':'application/x-www-form-urlencoded;charset=utf-8'});
            config.data={...config.data,
                _t: Date.parse(newDate())/1000}
            console.log('post请求之中的',config.data);var sign=postSign(config.data);
            config.data.sign= sign;}}elseif(config.method=='get'){
        config.params={
            _t: Date.parse(newDate())/1000,...config.params}let sign=getSign(config.params)// 给后端 设置 sign标志 代表请求的唯一
        config.params.sign= sign}return config;},function(error){return Promise.reject(error);});
  • 作者:小渣亮
  • 原文链接:https://blog.csdn.net/weixin_43845137/article/details/116143849
    更新时间:2022-07-25 14:19:17