Commit bd4dd2b6 authored by Breaker-93's avatar Breaker-93

免登配置及现场调试(路由前置守卫中处理);

parent 05f4ad55
# 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'
# 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
...@@ -7,10 +7,8 @@ ...@@ -7,10 +7,8 @@
</template> </template>
<script> <script>
import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN' import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN';
import { AppDeviceEnquire } from '@/utils/mixin' import { AppDeviceEnquire } from '@/utils/mixin';
import { getUrlParam } from '@/utils/util'
import { getToken } from '@/api/mt'
export default { export default {
mixins: [AppDeviceEnquire], mixins: [AppDeviceEnquire],
data() { data() {
...@@ -18,22 +16,6 @@ ...@@ -18,22 +16,6 @@
locale: zhCN 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: { methods: {
} }
}; };
......
...@@ -2,13 +2,20 @@ ...@@ -2,13 +2,20 @@
import { axios } from '@/utils/request'; import { axios } from '@/utils/request';
const api = { const api = {
getToken: '/api/oauth/getTokenByCode' getToken: '/api/oauth/getTokenByCode',
getUserId: '/api/contact/v1/account/get_my_info'
}; };
export function getToken(params) { export function getToken(params) {
return axios({ return axios({
url: api.getToken, url: process.env.VUE_APP_BASE_API2 + api.getToken,
method: 'get', method: 'get',
params: params params: params
}); });
} }
export function getUserId() {
return axios({
url: process.env.VUE_APP_BASE_API2 + api.getUserId,
method: 'get'
});
}
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
</template> </template>
<script> <script>
import { triggerWindowResizeEvent } from '@/utils/util'; import { triggerWindowResizeEvent, getUrlParam } from '@/utils/util';
import { mapState, mapActions } from 'vuex'; import { mapState, mapActions } from 'vuex';
import { mixin, mixinDevice } from '@/utils/mixin'; import { mixin, mixinDevice } from '@/utils/mixin';
import config from '@/config/defaultSettings'; import config from '@/config/defaultSettings';
...@@ -72,6 +72,8 @@ import SideMenu from '@/components/Menu/SideMenu'; ...@@ -72,6 +72,8 @@ import SideMenu from '@/components/Menu/SideMenu';
import GlobalHeader from '@/components/GlobalHeader'; import GlobalHeader from '@/components/GlobalHeader';
import GlobalFooter from '@/components/GlobalFooter'; import GlobalFooter from '@/components/GlobalFooter';
import SettingDrawer from '@/components/SettingDrawer'; import SettingDrawer from '@/components/SettingDrawer';
import { getToken, getUserId } from '@/api/mt';
;
export default { export default {
name: 'BasicLayout', name: 'BasicLayout',
...@@ -112,20 +114,26 @@ export default { ...@@ -112,20 +114,26 @@ export default {
} }
}, },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
let count = 0, const userCode = getUrlParam('userCode');
// eslint-disable-next-line prefer-const const corpId = getUrlParam('corpId');
interval = setInterval(() => { const data = {
console.log(count) code: userCode
count++ };
if (localStorage.getItem('task_accessToken')) { corpId && sessionStorage.setItem('corpId', corpId);
clearInterval(interval) userCode && sessionStorage.setItem('userCode', userCode);
next() if (userCode) {
} getToken(data).then(res => {
if (count > 5) { localStorage.setItem('task_accessToken', res.data.access_token);
clearInterval(interval) localStorage.setItem('task_refreshToken', res.data.refresh_token);
next() getUserId().then(res2 => {
} sessionStorage.setItem('userId', res.data.id);
}, 100) next();
});
});
} else {
alert('url中未找到userCode');
next();
}
}, },
created() { created() {
// this.menus = this.mainMenu.find(item => item.path === '/').children // this.menus = this.mainMenu.find(item => item.path === '/').children
......
...@@ -4,46 +4,23 @@ import axios from 'axios'; ...@@ -4,46 +4,23 @@ import axios from 'axios';
import { import {
VueAxios VueAxios
} from './axios'; } 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({ 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: '/api/task/v1' // api base_url
// baseURL: 'http://192.168.2.181:8081/' // baseURL: 'http://192.168.2.181:8081/'
// baseURL: 'http://localhost:8081/' timeout: 60000, // request timeout
// timeout: 6000 // 请求超时时间 headers: { 'clientType': 'app' }
}); });
let refreshTokenState = false;
// 刷新token的请求方法 // 刷新token的请求方法
function getRefreshToken() { function getRefreshToken() {
const params = { 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', { refreshTokenState = true;
params, // 注意!!!!!!!!最终生产环境,此处url的配置
headers: { 'clientType': 'app' } return service.get(process.env.VUE_APP_BASE_API2 + '/task/tb-user/refreshToken', params);
});
} }
const err = (error) => { const err = (error) => {
...@@ -74,7 +51,7 @@ const err = (error) => { ...@@ -74,7 +51,7 @@ const err = (error) => {
// request interceptor // request interceptor
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
const accessToken = Vue.ls.get('task_accessToken'); const accessToken = localStorage.getItem('task_accessToken');
if (accessToken) { if (accessToken) {
config.headers['Authorization'] = 'Bearer ' + accessToken; config.headers['Authorization'] = 'Bearer ' + accessToken;
} }
...@@ -85,27 +62,25 @@ service.interceptors.request.use(config => { ...@@ -85,27 +62,25 @@ service.interceptors.request.use(config => {
service.interceptors.response.use((response) => { service.interceptors.response.use((response) => {
const res = response.data; const res = response.data;
if (res.code && res.code !== 'M0000' && res.code !== 200) { if (res.code && res.code !== 'M0000' && res.code !== 200) {
// const resConfig = response.config; const resConfig = response.config;
// 如果 accessToken过期 // 如果 accessToken过期
// if (res.code === 'G_T_001' && !refreshTokenState) { if (res.code === 'G_T_001' && !refreshTokenState) {
// // 刷新重新获取accessToken // 刷新重新获取accessToken
// return getRefreshToken().then((res2) => { return getRefreshToken().then((res2) => {
// refreshTokenState = false; refreshTokenState = false;
// if (res2.code === 'M0000') { if (res2.code === 'M0000') {
// // 两个token 获取成功,继续完成被拦截的请求(因为该请求因token过期被拦截) // 两个token 获取成功,继续完成被拦截的请求(因为该请求因token过期被拦截)
// Vue.ls.set('task_accessToken', res2.access_token); localStorage.setItem('task_accessToken', res2.access_token);
// Vue.ls.set('task_refreshToken', res2.refresh_token); localStorage.setItem('task_refreshToken', res2.refresh_token);
// localStorage.setItem('task_accessToken', res2.access_token); resConfig.headers['Authorization'] = 'Bearer ' + res2.access_token;
// resConfig.headers['Authorization'] = 'Bearer ' + res2.access_token; return service(resConfig);
// return service(resConfig); } else {
// } else { alert('token过期且重新获取失败,请稍后重试!');
// alert('token过期且重新获取失败,请稍后重试!'); }
// } });
// } } else {
// ); alert(res.message);
// } else { }
// alert(res.msg);
// }
return Promise.reject(res.message); return Promise.reject(res.message);
} else { } else {
return res; return res;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment