61 lines
1.6 KiB
Vue
61 lines
1.6 KiB
Vue
/*
|
||
* @Author: hisense.wuhongjian
|
||
* @Date: 2022-04-01 17:23:11
|
||
* @LastEditors: Light
|
||
* @LastEditTime: 2022-10-17 09:25:32
|
||
* @Description: 告诉大家这是什么
|
||
*/
|
||
/**
|
||
* @author chuzhixin 1204505056@qq.com
|
||
* @description 路由守卫,目前两种模式:all模式与intelligence模式
|
||
*/
|
||
import router from '@/router'
|
||
import store from '@/store'
|
||
import getPageTitle from '@/utils/pageTitle'
|
||
import { getUserInfo } from '@/api/user'
|
||
import {
|
||
// authentication,
|
||
loginInterception,
|
||
// recordRoute,
|
||
routesWhiteList,
|
||
} from '@/config'
|
||
import { setAccessToken, getAccessToken } from '@/utils/accessToken'
|
||
router.beforeEach(async (to, from, next) => {
|
||
// debugger
|
||
// const SSOTOKEN = to.query.SSOToken
|
||
// if (SSOTOKEN) {
|
||
// setAccessToken(SSOTOKEN)
|
||
// }
|
||
const token = getAccessToken()
|
||
console.log('token', token)
|
||
let hasToken = token
|
||
// debugger
|
||
if (!loginInterception) hasToken = true
|
||
console.log('hasToken存在巨大问题', hasToken)
|
||
if (hasToken) {
|
||
// setAccessToken(hasToken)
|
||
await store.dispatch('user/getUserInfo')
|
||
// debugger
|
||
next()
|
||
} else {
|
||
let accessRoutes = []
|
||
accessRoutes = await store.dispatch('routes/setRoutes')
|
||
accessRoutes.forEach((item) => {
|
||
router.addRoute(item)
|
||
})
|
||
console.log('验证白名单', routesWhiteList)
|
||
if (routesWhiteList.indexOf(to.path) !== -1) {
|
||
next()
|
||
} else {
|
||
// 这里是一个单点登录的入口
|
||
if (to.query.redict) getUserInfo(to.query.redict)
|
||
else {
|
||
getUserInfo()
|
||
}
|
||
}
|
||
}
|
||
})
|
||
router.afterEach((to) => {
|
||
document.title = getPageTitle(to.meta.title)
|
||
})
|