1、修改请求方式 (请求头加入env和moduleCode)
2、新增配置
Showing
7 changed files
with
108 additions
and
41 deletions
... | @@ -2,3 +2,11 @@ NODE_ENV = 'development' | ... | @@ -2,3 +2,11 @@ NODE_ENV = 'development' |
2 | VUE_APP_TITLE = 'development' | 2 | VUE_APP_TITLE = 'development' |
3 | VUE_APP_PUBLIC_PATH = './' | 3 | VUE_APP_PUBLIC_PATH = './' |
4 | VUE_APP_OUTPUT_DIR = 'dist' | 4 | VUE_APP_OUTPUT_DIR = 'dist' |
5 | |||
6 | VUE_APP_ENV = 'demo' | ||
7 | VUE_APP_MODULE_CODE = '6f9f27c42878499a965c94bc8f203b23' | ||
8 | VUE_APP_BASE_API = 'https://bizapi.kdao.xin' | ||
9 | VUE_APP_RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxi7pNPRSc+87WEJxYnlMOzoDHBgMTmkQyVSMdYRi4tqcnqTibTqEB6xbL5S2w8kjq5ItMKjNcrFvdlh/oj+Qb2LtrHE/O6EOGQf58qH3kZmIhZ32tejJ57c67cXhqbaswUU8WhN4LkhdINrNcpKvnWBd6v2nmEUrmgvi/aL6DIG+OgUyFys0l5BQOeGqzEEYXQgR9ppwDl/QadKpIBgm87qPnhzR++EPKzScgqgqT8D8uw2A96Mj02HXS1n74eCViW+M04UiQ0p0Rq9RMs5EtVJMo2CuArHaPsvsjkUTVdsSROoRTvBzq+T1WmCZJzDvITPZ0hbpD5pTeaXHm7qItQIDAQAB' | ||
10 | VUE_APP_AES_IV = 'c5014a8dc3a341ac' | ||
11 | VUE_APP_TOKEN_KEY = 'kd_template_token' | ||
12 | VUE_APP_IS_POST_ENC = true | ... | ... |
... | @@ -2,3 +2,12 @@ NODE_ENV = 'production' | ... | @@ -2,3 +2,12 @@ NODE_ENV = 'production' |
2 | VUE_APP_TITLE = 'production' | 2 | VUE_APP_TITLE = 'production' |
3 | VUE_APP_PUBLIC_PATH = './' | 3 | VUE_APP_PUBLIC_PATH = './' |
4 | VUE_APP_OUTPUT_DIR = 'dist' | 4 | VUE_APP_OUTPUT_DIR = 'dist' |
5 | |||
6 | |||
7 | VUE_APP_ENV = 'demo' | ||
8 | VUE_APP_MODULE_CODE = '6f9f27c42878499a965c94bc8f203b23' | ||
9 | VUE_APP_BASE_API = 'https://bizapi.kdao.xin' | ||
10 | VUE_APP_RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxi7pNPRSc+87WEJxYnlMOzoDHBgMTmkQyVSMdYRi4tqcnqTibTqEB6xbL5S2w8kjq5ItMKjNcrFvdlh/oj+Qb2LtrHE/O6EOGQf58qH3kZmIhZ32tejJ57c67cXhqbaswUU8WhN4LkhdINrNcpKvnWBd6v2nmEUrmgvi/aL6DIG+OgUyFys0l5BQOeGqzEEYXQgR9ppwDl/QadKpIBgm87qPnhzR++EPKzScgqgqT8D8uw2A96Mj02HXS1n74eCViW+M04UiQ0p0Rq9RMs5EtVJMo2CuArHaPsvsjkUTVdsSROoRTvBzq+T1WmCZJzDvITPZ0hbpD5pTeaXHm7qItQIDAQAB' | ||
11 | VUE_APP_AES_IV = 'c5014a8dc3a341ac' | ||
12 | VUE_APP_TOKEN_KEY = 'kd_template_token' | ||
13 | VUE_APP_IS_POST_ENC = true | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -2,3 +2,12 @@ NODE_ENV = 'production' | ... | @@ -2,3 +2,12 @@ NODE_ENV = 'production' |
2 | VUE_APP_TITLE = 'sandbox' | 2 | VUE_APP_TITLE = 'sandbox' |
3 | VUE_APP_PUBLIC_PATH = './' | 3 | VUE_APP_PUBLIC_PATH = './' |
4 | VUE_APP_OUTPUT_DIR = 'sandbox' | 4 | VUE_APP_OUTPUT_DIR = 'sandbox' |
5 | |||
6 | |||
7 | VUE_APP_ENV = 'demo' | ||
8 | VUE_APP_MODULE_CODE = '6f9f27c42878499a965c94bc8f203b23' | ||
9 | VUE_APP_BASE_API = 'https://bizapi.kdao.xin' | ||
10 | VUE_APP_RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxi7pNPRSc+87WEJxYnlMOzoDHBgMTmkQyVSMdYRi4tqcnqTibTqEB6xbL5S2w8kjq5ItMKjNcrFvdlh/oj+Qb2LtrHE/O6EOGQf58qH3kZmIhZ32tejJ57c67cXhqbaswUU8WhN4LkhdINrNcpKvnWBd6v2nmEUrmgvi/aL6DIG+OgUyFys0l5BQOeGqzEEYXQgR9ppwDl/QadKpIBgm87qPnhzR++EPKzScgqgqT8D8uw2A96Mj02HXS1n74eCViW+M04UiQ0p0Rq9RMs5EtVJMo2CuArHaPsvsjkUTVdsSROoRTvBzq+T1WmCZJzDvITPZ0hbpD5pTeaXHm7qItQIDAQAB' | ||
11 | VUE_APP_AES_IV = 'c5014a8dc3a341ac' | ||
12 | VUE_APP_TOKEN_KEY = 'kd_template_token' | ||
13 | VUE_APP_IS_POST_ENC = true | ... | ... |
... | @@ -7,7 +7,7 @@ npm install | ... | @@ -7,7 +7,7 @@ npm install |
7 | 7 | ||
8 | ### Compiles and hot-reloads for development | 8 | ### Compiles and hot-reloads for development |
9 | ``` | 9 | ``` |
10 | npm run serve | 10 | npm run dev |
11 | ``` | 11 | ``` |
12 | 12 | ||
13 | ### Compiles and minifies for production | 13 | ### Compiles and minifies for production |
... | @@ -25,5 +25,22 @@ npm run test | ... | @@ -25,5 +25,22 @@ npm run test |
25 | npm run lint | 25 | npm run lint |
26 | ``` | 26 | ``` |
27 | 27 | ||
28 | ### Customize configuration | 28 | |
29 | See [Configuration Reference](https://cli.vuejs.org/config/). | 29 | # 配置 |
30 | ## 环境配置 | ||
31 | 配置说明: | ||
32 | 本地环境: .env.development | ||
33 | 沙箱环境: .env.sandbox | ||
34 | 正式环境: .env.development | ||
35 | |||
36 | ## 配置项说明 | ||
37 | ```bash | ||
38 | # 接口环境 | ||
39 | VUE_APP_ENV = 'demo' # 请求头环境参数:demo/prod,即开发/生产。不填写默认连接prod。 | ||
40 | VUE_APP_MODULE_CODE = '' # 请求头module code,由后端提供。 | ||
41 | VUE_APP_BASE_API = '' # api请求域名 | ||
42 | VUE_APP_RSA_PUBLIC_KEY = '' # 加密公钥 | ||
43 | VUE_APP_AES_IV = '' # 加密偏移量 | ||
44 | VUE_APP_TOKEN_KEY = 'kd_template_token' # 埋cookies时,token以该值为key | ||
45 | VUE_APP_IS_POST_ENC = true # 该值为true所有post接口请求加密;为false不加密,但可配置opt.enc=true自定义接口加密 | ||
46 | ``` | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -17,15 +17,16 @@ import { | ... | @@ -17,15 +17,16 @@ import { |
17 | 17 | ||
18 | import api from '@/api/api'; | 18 | import api from '@/api/api'; |
19 | 19 | ||
20 | |||
20 | // axios的默认url | 21 | // axios的默认url |
21 | // axios.defaults.baseURL = "" | 22 | // axios.defaults.baseURL = "" |
23 | let base = process.env.VUE_APP_BASE_API; | ||
24 | const ENV = process.env.VUE_APP_ENV; | ||
25 | const MODULE_CODE = process.env.VUE_APP_MODULE_CODE; | ||
26 | const IS_POST_ENC = process.env.VUE_APP_IS_POST_ENC; | ||
27 | // 默认超时 | ||
28 | axios.defaults.timeout = 5000; | ||
22 | 29 | ||
23 | // 服务器地址 | ||
24 | // let base = process.env.VUE_APP_API_HOST + "/jxMallApi"; | ||
25 | let base = "https://ow.go.qudone.com"; | ||
26 | if (location.href.indexOf("//k.wxpai.cn") > 0) { | ||
27 | base = "https://api.k.wxpai.cn/bizproxy" | ||
28 | } | ||
29 | 30 | ||
30 | // 请求拦截器 | 31 | // 请求拦截器 |
31 | // axios.interceptors.request.use( | 32 | // axios.interceptors.request.use( |
... | @@ -98,29 +99,32 @@ axios.interceptors.response.use( | ... | @@ -98,29 +99,32 @@ axios.interceptors.response.use( |
98 | ); | 99 | ); |
99 | 100 | ||
100 | 101 | ||
101 | //formDataHeaders设置 | ||
102 | let formDataHeaders = { | ||
103 | headers: { | ||
104 | "Content-Type": "multipart/form-data" | ||
105 | } | ||
106 | } | ||
107 | |||
108 | /** | 102 | /** |
109 | * 封装get方法 | 103 | * 分解参数&拦截请求 |
110 | * @param {*} params | ||
111 | * | ||
112 | */ | 104 | */ |
113 | export const httpGet = params => { | 105 | function analysisParams(params) { |
114 | let { | 106 | let { |
115 | url, | 107 | url, |
116 | data, | 108 | data, |
117 | mode, | 109 | mode, |
118 | opt = Object.assign({}, params.opt), | 110 | opt = Object.assign({}, params.opt), |
119 | sid = true | 111 | sid = true, |
112 | config, | ||
113 | method | ||
120 | } = params; | 114 | } = params; |
115 | if (IS_POST_ENC == 'true') { | ||
116 | if (method == 'post') { | ||
117 | data = makeEncrypt(data); | ||
118 | } | ||
119 | } else { | ||
121 | if (opt.enc) { | 120 | if (opt.enc) { |
122 | data = makeEncrypt(data); | 121 | data = makeEncrypt(data); |
123 | } | 122 | } |
123 | } | ||
124 | |||
125 | if (opt.dec) { | ||
126 | data = makerypt(data); | ||
127 | } | ||
124 | let reqUrl = `${base}${url}`; | 128 | let reqUrl = `${base}${url}`; |
125 | if (mode == "custom") { | 129 | if (mode == "custom") { |
126 | reqUrl = `${url}` | 130 | reqUrl = `${url}` |
... | @@ -128,7 +132,32 @@ export const httpGet = params => { | ... | @@ -128,7 +132,32 @@ export const httpGet = params => { |
128 | let headers = {} | 132 | let headers = {} |
129 | if (sid) { | 133 | if (sid) { |
130 | headers.sessionId = getToken(); | 134 | headers.sessionId = getToken(); |
135 | headers['-kd-platform-module'] = MODULE_CODE | ||
136 | headers['-kd-platform-env'] = ENV | ||
137 | } | ||
138 | return { | ||
139 | reqUrl, | ||
140 | data, | ||
141 | headers, | ||
142 | opt, | ||
143 | method, | ||
144 | config | ||
131 | } | 145 | } |
146 | } | ||
147 | |||
148 | /** | ||
149 | * 封装get方法 | ||
150 | * @param {*} params | ||
151 | */ | ||
152 | export const httpGet = params => { | ||
153 | params.method = 'get'; | ||
154 | let { | ||
155 | reqUrl, | ||
156 | data, | ||
157 | headers, | ||
158 | opt, | ||
159 | method | ||
160 | } = analysisParams(params); | ||
132 | return axios.get(reqUrl, { | 161 | return axios.get(reqUrl, { |
133 | params: data, | 162 | params: data, |
134 | headers, | 163 | headers, |
... | @@ -138,27 +167,18 @@ export const httpGet = params => { | ... | @@ -138,27 +167,18 @@ export const httpGet = params => { |
138 | 167 | ||
139 | /** | 168 | /** |
140 | * 封装post方法 | 169 | * 封装post方法 |
170 | * mode为custom时,忽略baseUrl | ||
141 | * @param {*} params | 171 | * @param {*} params |
142 | */ | 172 | */ |
143 | export const httpPost = params => { | 173 | export const httpPost = params => { |
174 | params.method = 'post'; | ||
144 | let { | 175 | let { |
145 | url, | 176 | reqUrl, |
146 | data, | 177 | data, |
147 | mode, | 178 | headers, |
148 | opt = Object.assign({}, params.opt), | 179 | opt, |
149 | sid = true | 180 | method |
150 | } = params; | 181 | } = analysisParams(params); |
151 | if (opt.enc) { | ||
152 | data = makeEncrypt(data); | ||
153 | } | ||
154 | let reqUrl = `${base}${url}`; | ||
155 | if (mode == "custom") { | ||
156 | reqUrl = `${url}` | ||
157 | } | ||
158 | let headers = {} | ||
159 | if (sid) { | ||
160 | headers.sessionId = getToken(); | ||
161 | } | ||
162 | return axios.post(reqUrl, data, { | 182 | return axios.post(reqUrl, data, { |
163 | headers, | 183 | headers, |
164 | opt | 184 | opt |
... | @@ -186,7 +206,11 @@ export const formdata = params => { | ... | @@ -186,7 +206,11 @@ export const formdata = params => { |
186 | for (let key in data) { | 206 | for (let key in data) { |
187 | formData.append(key, data[key]); | 207 | formData.append(key, data[key]); |
188 | } | 208 | } |
189 | return axios.post(`${base}${url}`, formData, formDataHeaders).then(res => res.data.content); | 209 | return axios.post(`${base}${url}`, formData, { |
210 | headers: { | ||
211 | "Content-Type": "multipart/form-data" | ||
212 | } | ||
213 | }).then(res => res.data.content); | ||
190 | } | 214 | } |
191 | 215 | ||
192 | 216 | ... | ... |
1 | import Cookies from 'js-cookie' | 1 | import Cookies from 'js-cookie' |
2 | 2 | ||
3 | const TokenKey = 'temp-app-token' | 3 | const TokenKey = process.env.VUE_APP_TOKEN_KEY; // TokenKey 自行配置 |
4 | 4 | ||
5 | export function getToken() { | 5 | export function getToken() { |
6 | return Cookies.get(TokenKey) | 6 | return Cookies.get(TokenKey) | ... | ... |
... | @@ -11,8 +11,8 @@ let rsa = new JsEncrypt(); | ... | @@ -11,8 +11,8 @@ let rsa = new JsEncrypt(); |
11 | * iv 偏移量 | 11 | * iv 偏移量 |
12 | */ | 12 | */ |
13 | export function makeEncrypt(param) { | 13 | export function makeEncrypt(param) { |
14 | let key = ""; | 14 | let key = process.env.VUE_APP_RSA_PUBLIC_KEY; // process.env.AES_KEY |
15 | let iv = "" | 15 | let iv = process.env.VUE_APP_AES_IV; // process.env.AES_IV |
16 | rsa.setPublicKey(key); | 16 | rsa.setPublicKey(key); |
17 | let chars = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(","); | 17 | let chars = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z".split(","); |
18 | 18 | ... | ... |
-
Please register or sign in to post a comment