首先,解決這個問題要搞明白此url是從程序內部跳轉還是直接在地址欄輸入的,如果是程序內部跳轉,那就好辦啦。方法如下:
判斷用戶是否登錄狀態,是否攜帶token
使用router.beforeEach注冊一個全局前置守衛,判斷用戶是否登錄。
router.beforeEach((to, from, next) => {
if (to.path === '/login') {
next();
console.log(next)
} else {// 每次頁面跳轉執行,token或openId錯誤,均提示跳轉到首頁
let token = sessionStorage.getItem('token');
console.log(token)
if (token === null || token === '' || token === undefined) {
Toast('token錯誤,請重新登錄')
setTimeout(function () {
next('/login');
},1000)
}else{
next();
}
}
});
HttpRequestServlet.getHeader(‘Referer’)的值如果是空的,說明此url是地址欄直接訪問的,像這種的需要攔截,然后時期返回登錄頁面!反之則是從程序內部跳轉,可以放行!
