Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
imac-vue
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Elements-SY
2023-09-06 17:55:48 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
3929145d185ff4a970964cb575969725d368843d
3929145d
1 parent
e3be8be8
modify
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
39 additions
and
26 deletions
src/permission.js
src/permission.js
View file @
3929145
import
router
from
"./router"
;
import
store
from
"./store"
;
import
{
Message
}
from
"element-ui"
;
import
{
getToken
,
removeToken
}
from
"@/utils/auth"
;
import
router
from
'./router'
import
store
from
'./store'
import
{
Message
}
from
'element-ui'
import
{
getToken
,
setToken
,
removeToken
}
from
'@/utils/auth'
import
settings
from
"@/settings"
const
whiteList
=
[
'/login'
,
'/auth-redirect'
,
'/bind'
,
'/register'
]
const
whiteList
=
[
"/login"
,
"/auth-redirect"
,
"/bind"
,
"/register"
];
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
if
(
getToken
())
{
/* has token*/
if
(
to
.
path
===
"/login"
)
{
next
({
path
:
"/"
});
if
(
to
.
path
===
'/login'
)
{
next
({
path
:
'/'
})
}
else
{
if
(
store
.
getters
.
roles
.
length
===
0
)
{
// 判断当前用户是否已拉取完user_info信息
store
.
dispatch
(
"GetInfo"
)
.
then
(()
=>
{
//获取用户表头
store
.
dispatch
(
"GetTableHeaders"
).
then
(()
=>
{
store
.
dispatch
(
'GetInfo'
).
then
(()
=>
{
store
.
dispatch
(
'GetTableHeaders'
).
then
(()
=>
{
store
.
dispatch
(
'GenerateRoutes'
).
then
(
accessRoutes
=>
{
// 根据roles权限生成可访问的路由表
store
.
dispatch
(
"GenerateRoutes"
).
then
((
accessRoutes
)
=>
{
router
.
addRoutes
(
accessRoutes
);
// 动态添加可访问路由表
next
({
...
to
,
replace
:
true
});
// hack方法 确保addRoutes已完成
});
});
router
.
addRoutes
(
accessRoutes
)
// 动态添加可访问路由表
next
({
...
to
,
replace
:
true
})
// hack方法 确保addRoutes已完成
})
})
.
catch
((
err
)
=>
{});
}).
catch
(
err
=>
{
Message
.
error
(
err
)
// store.dispatch('LogOut').then(() => {
// // next({ path: '/' })
// window.location.href = settings.loginURL;//wsso系统跳转
// })
})
}
else
{
next
()
;
next
()
}
}
}
else
{
removeToken
()
;
removeToken
()
// 没有token
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
// 在免登录白名单,直接进入
next
();
//wsso登录时对后端重定向带来的token进行记录
let
token
=
location
.
search
.
split
(
"token="
)[
1
]
if
(
token
!=
undefined
&&
token
!=
''
&&
token
!=
null
)
{
setToken
(
token
)
next
({
path
:
'/'
})
}
else
{
next
(
`/login?redirect=
${
to
.
fullPath
}
`
);
// 否则全部重定向到登录页
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
// 在免登录白名单,直接进入
next
()
}
else
{
window
.
location
.
href
=
settings
.
loginURL
;
//wsso系统跳转
}
}
}
})
;
})
router
.
afterEach
(()
=>
{});
router
.
afterEach
(()
=>
{
})
...
...
Please
register
or
login
to post a comment