Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
web-framework-temp
/
vue-cli3-vt-template-master
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
06dcfb0b
authored
2022-04-14 10:42:17 +0800
by
simon
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1、修改请求方式 (请求头加入env和moduleCode)
2、新增配置
1 parent
64abdf01
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
108 additions
and
41 deletions
.env.development
.env.production
.env.sandbox
README.md
src/api/fetch-api.js
src/utils/auth.js
src/utils/encrypt-util.js
.env.development
View file @
06dcfb0
...
...
@@ -2,3 +2,11 @@ NODE_ENV = 'development'
VUE_APP_TITLE = 'development'
VUE_APP_PUBLIC_PATH = './'
VUE_APP_OUTPUT_DIR = 'dist'
VUE_APP_ENV = 'demo'
VUE_APP_MODULE_CODE = '6f9f27c42878499a965c94bc8f203b23'
VUE_APP_BASE_API = 'https://bizapi.kdao.xin'
VUE_APP_RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxi7pNPRSc+87WEJxYnlMOzoDHBgMTmkQyVSMdYRi4tqcnqTibTqEB6xbL5S2w8kjq5ItMKjNcrFvdlh/oj+Qb2LtrHE/O6EOGQf58qH3kZmIhZ32tejJ57c67cXhqbaswUU8WhN4LkhdINrNcpKvnWBd6v2nmEUrmgvi/aL6DIG+OgUyFys0l5BQOeGqzEEYXQgR9ppwDl/QadKpIBgm87qPnhzR++EPKzScgqgqT8D8uw2A96Mj02HXS1n74eCViW+M04UiQ0p0Rq9RMs5EtVJMo2CuArHaPsvsjkUTVdsSROoRTvBzq+T1WmCZJzDvITPZ0hbpD5pTeaXHm7qItQIDAQAB'
VUE_APP_AES_IV = 'c5014a8dc3a341ac'
VUE_APP_TOKEN_KEY = 'kd_template_token'
VUE_APP_IS_POST_ENC = true
...
...
.env.production
View file @
06dcfb0
...
...
@@ -2,3 +2,12 @@ NODE_ENV = 'production'
VUE_APP_TITLE = 'production'
VUE_APP_PUBLIC_PATH = './'
VUE_APP_OUTPUT_DIR = 'dist'
VUE_APP_ENV = 'demo'
VUE_APP_MODULE_CODE = '6f9f27c42878499a965c94bc8f203b23'
VUE_APP_BASE_API = 'https://bizapi.kdao.xin'
VUE_APP_RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxi7pNPRSc+87WEJxYnlMOzoDHBgMTmkQyVSMdYRi4tqcnqTibTqEB6xbL5S2w8kjq5ItMKjNcrFvdlh/oj+Qb2LtrHE/O6EOGQf58qH3kZmIhZ32tejJ57c67cXhqbaswUU8WhN4LkhdINrNcpKvnWBd6v2nmEUrmgvi/aL6DIG+OgUyFys0l5BQOeGqzEEYXQgR9ppwDl/QadKpIBgm87qPnhzR++EPKzScgqgqT8D8uw2A96Mj02HXS1n74eCViW+M04UiQ0p0Rq9RMs5EtVJMo2CuArHaPsvsjkUTVdsSROoRTvBzq+T1WmCZJzDvITPZ0hbpD5pTeaXHm7qItQIDAQAB'
VUE_APP_AES_IV = 'c5014a8dc3a341ac'
VUE_APP_TOKEN_KEY = 'kd_template_token'
VUE_APP_IS_POST_ENC = true
\ No newline at end of file
...
...
.env.sandbox
View file @
06dcfb0
...
...
@@ -2,3 +2,12 @@ NODE_ENV = 'production'
VUE_APP_TITLE = 'sandbox'
VUE_APP_PUBLIC_PATH = './'
VUE_APP_OUTPUT_DIR = 'sandbox'
VUE_APP_ENV = 'demo'
VUE_APP_MODULE_CODE = '6f9f27c42878499a965c94bc8f203b23'
VUE_APP_BASE_API = 'https://bizapi.kdao.xin'
VUE_APP_RSA_PUBLIC_KEY = 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxi7pNPRSc+87WEJxYnlMOzoDHBgMTmkQyVSMdYRi4tqcnqTibTqEB6xbL5S2w8kjq5ItMKjNcrFvdlh/oj+Qb2LtrHE/O6EOGQf58qH3kZmIhZ32tejJ57c67cXhqbaswUU8WhN4LkhdINrNcpKvnWBd6v2nmEUrmgvi/aL6DIG+OgUyFys0l5BQOeGqzEEYXQgR9ppwDl/QadKpIBgm87qPnhzR++EPKzScgqgqT8D8uw2A96Mj02HXS1n74eCViW+M04UiQ0p0Rq9RMs5EtVJMo2CuArHaPsvsjkUTVdsSROoRTvBzq+T1WmCZJzDvITPZ0hbpD5pTeaXHm7qItQIDAQAB'
VUE_APP_AES_IV = 'c5014a8dc3a341ac'
VUE_APP_TOKEN_KEY = 'kd_template_token'
VUE_APP_IS_POST_ENC = true
...
...
README.md
View file @
06dcfb0
...
...
@@ -7,7 +7,7 @@ npm install
### Compiles and hot-reloads for development
```
npm run
serve
npm run
dev
```
### Compiles and minifies for production
...
...
@@ -25,5 +25,22 @@ npm run test
npm run lint
```
### Customize configuration
See
[
Configuration Reference
](
https://cli.vuejs.org/config/
)
.
# 配置
## 环境配置
配置说明:
本地环境: .env.development
沙箱环境: .env.sandbox
正式环境: .env.development
## 配置项说明
```
bash
# 接口环境
VUE_APP_ENV
=
'demo'
# 请求头环境参数:demo/prod,即开发/生产。不填写默认连接prod。
VUE_APP_MODULE_CODE
=
''
# 请求头module code,由后端提供。
VUE_APP_BASE_API
=
''
# api请求域名
VUE_APP_RSA_PUBLIC_KEY
=
''
# 加密公钥
VUE_APP_AES_IV
=
''
# 加密偏移量
VUE_APP_TOKEN_KEY
=
'kd_template_token'
# 埋cookies时,token以该值为key
VUE_APP_IS_POST_ENC
=
true
# 该值为true所有post接口请求加密;为false不加密,但可配置opt.enc=true自定义接口加密
```
\ No newline at end of file
...
...
src/api/fetch-api.js
View file @
06dcfb0
...
...
@@ -17,15 +17,16 @@ import {
import
api
from
'@/api/api'
;
// axios的默认url
// axios.defaults.baseURL = ""
let
base
=
process
.
env
.
VUE_APP_BASE_API
;
const
ENV
=
process
.
env
.
VUE_APP_ENV
;
const
MODULE_CODE
=
process
.
env
.
VUE_APP_MODULE_CODE
;
const
IS_POST_ENC
=
process
.
env
.
VUE_APP_IS_POST_ENC
;
// 默认超时
axios
.
defaults
.
timeout
=
5000
;
// 服务器地址
// let base = process.env.VUE_APP_API_HOST + "/jxMallApi";
let
base
=
"https://ow.go.qudone.com"
;
if
(
location
.
href
.
indexOf
(
"//k.wxpai.cn"
)
>
0
)
{
base
=
"https://api.k.wxpai.cn/bizproxy"
}
// 请求拦截器
// axios.interceptors.request.use(
...
...
@@ -98,29 +99,32 @@ axios.interceptors.response.use(
);
//formDataHeaders设置
let
formDataHeaders
=
{
headers
:
{
"Content-Type"
:
"multipart/form-data"
}
}
/**
* 封装get方法
* @param {*} params
*
* 分解参数&拦截请求
*/
export
const
httpGet
=
params
=>
{
function
analysisParams
(
params
)
{
let
{
url
,
data
,
mode
,
opt
=
Object
.
assign
({},
params
.
opt
),
sid
=
true
sid
=
true
,
config
,
method
}
=
params
;
if
(
IS_POST_ENC
==
'true'
)
{
if
(
method
==
'post'
)
{
data
=
makeEncrypt
(
data
);
}
}
else
{
if
(
opt
.
enc
)
{
data
=
makeEncrypt
(
data
);
}
}
if
(
opt
.
dec
)
{
data
=
makerypt
(
data
);
}
let
reqUrl
=
`
${
base
}${
url
}
`
;
if
(
mode
==
"custom"
)
{
reqUrl
=
`
${
url
}
`
...
...
@@ -128,7 +132,32 @@ export const httpGet = params => {
let
headers
=
{}
if
(
sid
)
{
headers
.
sessionId
=
getToken
();
headers
[
'-kd-platform-module'
]
=
MODULE_CODE
headers
[
'-kd-platform-env'
]
=
ENV
}
return
{
reqUrl
,
data
,
headers
,
opt
,
method
,
config
}
}
/**
* 封装get方法
* @param {*} params
*/
export
const
httpGet
=
params
=>
{
params
.
method
=
'get'
;
let
{
reqUrl
,
data
,
headers
,
opt
,
method
}
=
analysisParams
(
params
);
return
axios
.
get
(
reqUrl
,
{
params
:
data
,
headers
,
...
...
@@ -138,27 +167,18 @@ export const httpGet = params => {
/**
* 封装post方法
* mode为custom时,忽略baseUrl
* @param {*} params
*/
export
const
httpPost
=
params
=>
{
params
.
method
=
'post'
;
let
{
u
rl
,
reqU
rl
,
data
,
mode
,
opt
=
Object
.
assign
({},
params
.
opt
),
sid
=
true
}
=
params
;
if
(
opt
.
enc
)
{
data
=
makeEncrypt
(
data
);
}
let
reqUrl
=
`
${
base
}${
url
}
`
;
if
(
mode
==
"custom"
)
{
reqUrl
=
`
${
url
}
`
}
let
headers
=
{}
if
(
sid
)
{
headers
.
sessionId
=
getToken
();
}
headers
,
opt
,
method
}
=
analysisParams
(
params
);
return
axios
.
post
(
reqUrl
,
data
,
{
headers
,
opt
...
...
@@ -186,7 +206,11 @@ export const formdata = params => {
for
(
let
key
in
data
)
{
formData
.
append
(
key
,
data
[
key
]);
}
return
axios
.
post
(
`
${
base
}${
url
}
`
,
formData
,
formDataHeaders
).
then
(
res
=>
res
.
data
.
content
);
return
axios
.
post
(
`
${
base
}${
url
}
`
,
formData
,
{
headers
:
{
"Content-Type"
:
"multipart/form-data"
}
}).
then
(
res
=>
res
.
data
.
content
);
}
...
...
src/utils/auth.js
View file @
06dcfb0
import
Cookies
from
'js-cookie'
const
TokenKey
=
'temp-app-token'
const
TokenKey
=
process
.
env
.
VUE_APP_TOKEN_KEY
;
// TokenKey 自行配置
export
function
getToken
()
{
return
Cookies
.
get
(
TokenKey
)
...
...
src/utils/encrypt-util.js
View file @
06dcfb0
...
...
@@ -11,8 +11,8 @@ let rsa = new JsEncrypt();
* iv 偏移量
*/
export
function
makeEncrypt
(
param
)
{
let
key
=
""
;
let
iv
=
""
let
key
=
process
.
env
.
VUE_APP_RSA_PUBLIC_KEY
;
// process.env.AES_KEY
let
iv
=
process
.
env
.
VUE_APP_AES_IV
;
// process.env.AES_IV
rsa
.
setPublicKey
(
key
);
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
(
","
);
...
...
Please
register
or
sign in
to post a comment