diff --git a/.env.dev b/.env.dev index c1c71b9a..6d22ec2d 100644 --- a/.env.dev +++ b/.env.dev @@ -14,9 +14,10 @@ VUE_APP_TITLE = 洛玻集团驾驶舱 # 小田 # VUE_APP_BASE_API = 'http://172.16.19.232:7070' # 测试 -VUE_APP_BASE_API = 'http://192.168.0.35:8080' +# VUE_APP_BASE_API = 'http://192.168.0.35:8080' # 闫阳 # VUE_APP_BASE_API = 'http://172.16.19.131:7070' +VUE_APP_BASE_API = 'http://172.16.20.187:7070' # 路由懒加载 diff --git a/src/permission.js b/src/permission.js index 511e839d..a7376444 100644 --- a/src/permission.js +++ b/src/permission.js @@ -3,7 +3,7 @@ import store from './store' import { Message } from 'element-ui' import NProgress from 'nprogress' import 'nprogress/nprogress.css' -import { getAccessToken, removeToken } from '@/utils/auth' +import { getAccessToken, setToken, removeToken } from '@/utils/auth' import { isRelogin } from '@/utils/request' NProgress.configure({ showSpinner: false }) @@ -55,11 +55,22 @@ const whiteList = ['/login', '/social-login', '/auth-redirect', '/bind', '/regi router.beforeEach((to, from, next) => { NProgress.start() + // === MES SSO 跳转:URL 参数中携带 token,自动存储并登录 === + const searchParams = new URLSearchParams(window.location.search) + const urlAccessToken = searchParams.get('accessToken') || searchParams.get('access_token') + const urlRefreshToken = searchParams.get('refreshToken') || searchParams.get('refresh_token') + if (urlAccessToken && urlRefreshToken && !getAccessToken()) { + setToken({ accessToken: urlAccessToken, refreshToken: urlRefreshToken }) + next({ path: '/', replace: true }) + return + } + // ====== if (getAccessToken()) { to.meta.title && store.dispatch('settings/setTitle', to.meta.title) /* has token*/ if (to.path === '/login') { - next({ path: store.getters.defaultPath || '/' }) + const redirectPath = to.query.redirect ? decodeURIComponent(to.query.redirect) : undefined + next({ path: redirectPath || store.getters.defaultPath || '/' }) NProgress.done() } else { if (store.getters.roles.length === 0) { @@ -130,5 +141,14 @@ router.beforeEach((to, from, next) => { }) router.afterEach(() => { + // 清理 MES SSO 跳转带入的 token 参数,避免暴露在地址栏 + var s = window.location.search + if (s && (s.indexOf('access_token') > -1 || s.indexOf('refresh_token') > -1)) { + var p = new URLSearchParams(s) + p.delete('access_token'); p.delete('accessToken') + p.delete('refresh_token'); p.delete('refreshToken') + var ns = p.toString() + history.replaceState(null, '', window.location.pathname + (ns ? '?' + ns : '') + window.location.hash) + } NProgress.done() })