vue跨域请求后端加密接口

17 篇文章 0 订阅

vue跨域请求后端加密接口

1、设置跨域代理

首先在config/index.js 里面找到proxyTable :{} ,然后在里面加入
在main.js设置一个基础路径:axios.defaults.baseURL=”/api”,这样调用接口的时候可以不写api,直接写/接口名称即可。
例如:let _url4=”/dictionaryTypes”

“/api”:{
target: ‘http://47.104.218.122:8087’,
changeOrigin: true,
pathRewrite: {
‘^/api’: ‘/’
}
}

请求不到数据时

在axios.get(url,{})参数中加如下

1、emulateJSON :true,关键性作用

axios封装代码

import Vue from "vue";
import axios from 'axios'
import crypto from 'crypto'
import moment from 'moment'
import { token } from './config.js'
import { BASE_URL,ACCOUNT,TOKEN_URL } from './config.js'
export default {
 async ajaxGet( url, data = {}, method = 'get') {
    var c = this;
        var result = c.re( url, data, method);
        return result.then(function(value){
            if( value.success == 'false' && value.error_code == 'error_no_auth') {
            }
            return value;
        });
  },
  re( url, data, method){
    var c = this;
    var token_cookies = c.readToken();
    if( token_cookies) {
        var result = c.getContent( token_cookies, url, data, method);
    }
    return result;
},
  readToken() {
        var token = '';
        return token.toString();
    },
  getContent:function(token, url, data, method){
    var that=this;
    var headers={};
      headers['Authorization']='ACCESS_TOKEN='+token;
      var geheader = that.generatePgrouterHeader( url, method);
      var headers =Object.assign(headers, geheader); 
      return axios.get(url,{
              withCredentials:true,
              dataType: 'json',
              method: method,
              params: data,
              emulateJSON :true,
              headers : headers
          }).then(function(value) {
             console.log(value);
              return value;
          });
   },
  generatePgrouterHeader(api, method) {
        const time = moment().unix() * 1000;
        const key = '';
        const md5 = crypto.createHash('md5');
        const signString = 'app' + method.toUpperCase() + api +time + key;
        const pgsign = 'app:' + md5.update(signString, 'utf8').digest('hex');
        return {pgdate: time, pgsign: pgsign};
    },
   decrypt(data){
        const key= ''
        const iv= ''
        var decipher = crypto.createDecipheriv('aes-128-cbc', key, iv),
        buffer = Buffer.concat([
            decipher.update(Buffer.from(data, 'base64')),
            decipher.final()
        ]);
        string = buffer.toString();

        return string;
    },
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值