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:48:07 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
eb8b6e4916b86d82ee42f0121437d576f75eb697
eb8b6e49
1 parent
6614463a
modify
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
37 deletions
src/permission.js
src/permission.js
View file @
eb8b6e4
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'
]
import
router
from
"./router"
;
import
store
from
"./store"
;
import
{
Message
}
from
"element-ui"
;
import
{
getToken
,
removeToken
}
from
"@/utils/auth"
;
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
(
'GenerateRoutes'
).
then
(
accessRoutes
=>
{
store
.
dispatch
(
"GetInfo"
)
.
then
(()
=>
{
//获取用户表头
store
.
dispatch
(
"GetTableHeaders"
).
then
(()
=>
{
// 根据roles权限生成可访问的路由表
router
.
addRoutes
(
accessRoutes
)
// 动态添加可访问路由表
next
({
...
to
,
replace
:
true
})
// hack方法 确保addRoutes已完成
})
})
}).
catch
(
err
=>
{
Message
.
error
(
err
)
// store.dispatch('LogOut').then(() => {
// // next({ path: '/' })
// window.location.href = settings.loginURL;//wsso系统跳转
// })
store
.
dispatch
(
"GenerateRoutes"
).
then
((
accessRoutes
)
=>
{
router
.
addRoutes
(
accessRoutes
);
// 动态添加可访问路由表
next
({
...
to
,
replace
:
true
});
// hack方法 确保addRoutes已完成
});
});
})
.
catch
((
err
)
=>
{});
}
else
{
next
()
next
()
;
}
}
}
else
{
removeToken
()
removeToken
()
;
// 没有token
//wsso登录时对后端重定向带来的token进行记录
let
token
=
location
.
search
.
split
(
"token="
)[
1
]
if
(
token
!=
undefined
&&
token
!=
''
&&
token
!=
null
)
{
setToken
(
token
)
next
({
path
:
'/'
})
}
else
{
if
(
whiteList
.
indexOf
(
to
.
path
)
!==
-
1
)
{
// 在免登录白名单,直接进入
next
()
next
();
}
else
{
window
.
location
.
href
=
settings
.
loginURL
;
//wsso系统跳转
}
next
(
`/login?redirect=
${
to
.
fullPath
}
`
);
// 否则全部重定向到登录页
}
}
})
})
;
router
.
afterEach
(()
=>
{
})
router
.
afterEach
(()
=>
{});
...
...
Please
register
or
login
to post a comment