Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mt-education-web
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王旭
mt-education-web
Commits
bd4dd2b6
Commit
bd4dd2b6
authored
Oct 11, 2019
by
Breaker-93
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
免登配置及现场调试(路由前置守卫中处理);
parent
05f4ad55
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
87 additions
and
89 deletions
+87
-89
.env.development
.env.development
+19
-0
.env.production
.env.production
+7
-0
App.vue
src/App.vue
+2
-20
mt.js
src/api/mt.js
+9
-2
BasicLayoutWithoutTopnav.vue
src/layouts/BasicLayoutWithoutTopnav.vue
+23
-15
request.js
src/utils/request.js
+27
-52
No files found.
.env.development
0 → 100644
View file @
bd4dd2b6
# just a flag
ENV = 'development'
# base api 后端接口配置
VUE_APP_BASE_API = 'http://127.0.0.1:8081/'
VUE_APP_BASE_API2 = 'http://192.168.5.41'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require().
# This configuration can significantly increase the speed of hot updates,
# when you have a large number of pages.
# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# 高德地图配置信息
VUE_APP_AMAP_KEY = '8be75819d3c27cf6597d26c0e7db34ce'
VUE_APP_AMAP_VERSION = '1.4.4'
.env.production
0 → 100644
View file @
bd4dd2b6
# just a flag
ENV = 'production'
# base api 后端接口配置
VUE_APP_BASE_API = 'http://localhost/schedule/'
VUE_APP_BASE_API2 = 'http://192.168.5.41'
\ No newline at end of file
src/App.vue
View file @
bd4dd2b6
...
...
@@ -7,10 +7,8 @@
</
template
>
<
script
>
import
zhCN
from
'ant-design-vue/lib/locale-provider/zh_CN'
import
{
AppDeviceEnquire
}
from
'@/utils/mixin'
import
{
getUrlParam
}
from
'@/utils/util'
import
{
getToken
}
from
'@/api/mt'
import
zhCN
from
'ant-design-vue/lib/locale-provider/zh_CN'
;
import
{
AppDeviceEnquire
}
from
'@/utils/mixin'
;
export
default
{
mixins
:
[
AppDeviceEnquire
],
data
()
{
...
...
@@ -18,22 +16,6 @@
locale
:
zhCN
};
},
beforeCreate
()
{
const
userCode
=
getUrlParam
(
'userCode'
),
corpId
=
getUrlParam
(
'corpId'
),
data
=
{
code
:
userCode
}
corpId
&&
this
.
$ls
.
set
(
'corpId'
,
corpId
)
userCode
&&
this
.
$ls
.
set
(
'userCode'
,
userCode
)
if
(
userCode
)
{
getToken
(
data
).
then
(
res
=>
{
this
.
$ls
.
set
(
'task_accessToken'
,
res
.
access_token
)
localStorage
.
setItem
(
'task_accessToken'
,
res
.
access_token
)
this
.
$ls
.
set
(
'task_refreshToken'
,
res
.
refresh_token
)
})
}
},
methods
:
{
}
};
...
...
src/api/mt.js
View file @
bd4dd2b6
...
...
@@ -2,13 +2,20 @@
import
{
axios
}
from
'@/utils/request'
;
const
api
=
{
getToken
:
'/api/oauth/getTokenByCode'
getToken
:
'/api/oauth/getTokenByCode'
,
getUserId
:
'/api/contact/v1/account/get_my_info'
};
export
function
getToken
(
params
)
{
return
axios
({
url
:
api
.
getToken
,
url
:
process
.
env
.
VUE_APP_BASE_API2
+
api
.
getToken
,
method
:
'get'
,
params
:
params
});
}
export
function
getUserId
()
{
return
axios
({
url
:
process
.
env
.
VUE_APP_BASE_API2
+
api
.
getUserId
,
method
:
'get'
});
}
src/layouts/BasicLayoutWithoutTopnav.vue
View file @
bd4dd2b6
...
...
@@ -60,7 +60,7 @@
</
template
>
<
script
>
import
{
triggerWindowResizeEvent
}
from
'@/utils/util'
;
import
{
triggerWindowResizeEvent
,
getUrlParam
}
from
'@/utils/util'
;
import
{
mapState
,
mapActions
}
from
'vuex'
;
import
{
mixin
,
mixinDevice
}
from
'@/utils/mixin'
;
import
config
from
'@/config/defaultSettings'
;
...
...
@@ -72,6 +72,8 @@ import SideMenu from '@/components/Menu/SideMenu';
import
GlobalHeader
from
'@/components/GlobalHeader'
;
import
GlobalFooter
from
'@/components/GlobalFooter'
;
import
SettingDrawer
from
'@/components/SettingDrawer'
;
import
{
getToken
,
getUserId
}
from
'@/api/mt'
;
;
export
default
{
name
:
'BasicLayout'
,
...
...
@@ -112,20 +114,26 @@ export default {
}
},
beforeRouteEnter
(
to
,
from
,
next
)
{
let
count
=
0
,
// eslint-disable-next-line prefer-const
interval
=
setInterval
(()
=>
{
console
.
log
(
count
)
count
++
if
(
localStorage
.
getItem
(
'task_accessToken'
))
{
clearInterval
(
interval
)
next
()
}
if
(
count
>
5
)
{
clearInterval
(
interval
)
next
()
}
},
100
)
const
userCode
=
getUrlParam
(
'userCode'
);
const
corpId
=
getUrlParam
(
'corpId'
);
const
data
=
{
code
:
userCode
};
corpId
&&
sessionStorage
.
setItem
(
'corpId'
,
corpId
);
userCode
&&
sessionStorage
.
setItem
(
'userCode'
,
userCode
);
if
(
userCode
)
{
getToken
(
data
).
then
(
res
=>
{
localStorage
.
setItem
(
'task_accessToken'
,
res
.
data
.
access_token
);
localStorage
.
setItem
(
'task_refreshToken'
,
res
.
data
.
refresh_token
);
getUserId
().
then
(
res2
=>
{
sessionStorage
.
setItem
(
'userId'
,
res
.
data
.
id
);
next
();
});
});
}
else
{
alert
(
'url中未找到userCode'
);
next
();
}
},
created
()
{
// this.menus = this.mainMenu.find(item => item.path === '/').children
...
...
src/utils/request.js
View file @
bd4dd2b6
...
...
@@ -4,46 +4,23 @@ import axios from 'axios';
import
{
VueAxios
}
from
'./axios'
;
// import notification from 'ant-design-vue/es/notification';
// import {
// ACCESS_TOKEN
// } from '@/store/mutation-types';
// 创建 axios 实例
// const service = axios.create({
// baseURL: 'http://192.168.2.241:8081', // api base_url
// headers: { 'clientType': 'app' }
// // baseURL: '/api/task/v1' // api base_url
// // baseURL: 'http://192.168.2.181:8081/'
// // baseURL: 'http://localhost:8081/'
// // timeout: 6000 // 请求超时时间
// });
// let refreshTokenState = false;
// // 刷新token的请求方法
// function getRefreshToken() {
// const params = {
// refreshToken: Vue.ls.get('task_refreshToken')
// };
// refreshTokenState = true;
// return service.get('/task/tb-user/refreshToken', params);
// }
const
service
=
axios
.
create
({
baseURL
:
'http://192.168.2.241:8081'
// api base_url
baseURL
:
process
.
env
.
VUE_APP_BASE_API
,
// api base_url
// baseURL: '/api/task/v1' // api base_url
// baseURL: 'http://192.168.2.181:8081/'
// baseURL: 'http://localhost:8081/'
// timeout: 6000 // 请求超时时间
timeout
:
60000
,
// request timeout
headers
:
{
'clientType'
:
'app'
}
});
let
refreshTokenState
=
false
;
// 刷新token的请求方法
function
getRefreshToken
()
{
const
params
=
{
refreshToken
:
Vue
.
ls
.
get
(
'
refreshToken'
)
refreshToken
:
localStorage
.
getItem
(
'task_
refreshToken'
)
};
return
axios
.
get
(
'http://192.168.5.41/api/task/v1/task/tb-user/refreshToken'
,
{
params
,
headers
:
{
'clientType'
:
'app'
}
});
refreshTokenState
=
true
;
// 注意!!!!!!!!最终生产环境,此处url的配置
return
service
.
get
(
process
.
env
.
VUE_APP_BASE_API2
+
'/task/tb-user/refreshToken'
,
params
);
}
const
err
=
(
error
)
=>
{
...
...
@@ -74,7 +51,7 @@ const err = (error) => {
// request interceptor
service
.
interceptors
.
request
.
use
(
config
=>
{
const
accessToken
=
Vue
.
ls
.
get
(
'task_accessToken'
);
const
accessToken
=
localStorage
.
getItem
(
'task_accessToken'
);
if
(
accessToken
)
{
config
.
headers
[
'Authorization'
]
=
'Bearer '
+
accessToken
;
}
...
...
@@ -85,27 +62,25 @@ service.interceptors.request.use(config => {
service
.
interceptors
.
response
.
use
((
response
)
=>
{
const
res
=
response
.
data
;
if
(
res
.
code
&&
res
.
code
!==
'M0000'
&&
res
.
code
!==
200
)
{
//
const resConfig = response.config;
const
resConfig
=
response
.
config
;
// 如果 accessToken过期
// if (res.code === 'G_T_001' && !refreshTokenState) {
// // 刷新重新获取accessToken
// return getRefreshToken().then((res2) => {
// refreshTokenState = false;
// if (res2.code === 'M0000') {
// // 两个token 获取成功,继续完成被拦截的请求(因为该请求因token过期被拦截)
// Vue.ls.set('task_accessToken', res2.access_token);
// Vue.ls.set('task_refreshToken', res2.refresh_token);
// localStorage.setItem('task_accessToken', res2.access_token);
// resConfig.headers['Authorization'] = 'Bearer ' + res2.access_token;
// return service(resConfig);
// } else {
// alert('token过期且重新获取失败,请稍后重试!');
// }
// }
// );
// } else {
// alert(res.msg);
// }
if
(
res
.
code
===
'G_T_001'
&&
!
refreshTokenState
)
{
// 刷新重新获取accessToken
return
getRefreshToken
().
then
((
res2
)
=>
{
refreshTokenState
=
false
;
if
(
res2
.
code
===
'M0000'
)
{
// 两个token 获取成功,继续完成被拦截的请求(因为该请求因token过期被拦截)
localStorage
.
setItem
(
'task_accessToken'
,
res2
.
access_token
);
localStorage
.
setItem
(
'task_refreshToken'
,
res2
.
refresh_token
);
resConfig
.
headers
[
'Authorization'
]
=
'Bearer '
+
res2
.
access_token
;
return
service
(
resConfig
);
}
else
{
alert
(
'token过期且重新获取失败,请稍后重试!'
);
}
});
}
else
{
alert
(
res
.
message
);
}
return
Promise
.
reject
(
res
.
message
);
}
else
{
return
res
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment