做了一個結合admin和abp原生的vue模板。
現在新增兩個登陸路由,假設爲學生和教師,都指向原本的登陸界面。
問題1:新增完路由後,發現手動輸入/student路由總是回到/login,
查看路由守衛後發現路由有白名單,在名單內的路由,無token時纔不會被重定向。
解決:在白名單中加入新增的路由
問題2:點擊登錄,成功後還是回到/login路由。
發現有token後,守衛還是會對路由名進行判斷,路由地址爲/login的會被指向路由/
解決:對這個判斷進行修改,添加教師、學生路由。
const whiteList = ['/login','/doctor','/nurse'] // 不重定向白名單
router.beforeEach((to, from, next) => {
NProgress.start()
if (window.abp.auth.getToken()) {
// con
if (whiteList.indexOf(to.path) !== -1) {
next({ path: '/' })
NProgress.done() // if current page is dashboard will not trigger afterEach hook, so manually handle it
} else {
next()
}
} else {
if (whiteList.indexOf(to.path) !== -1) {
next()
} else {
next(`/login?redirect=${to.path}`) // 否則全部重定向到登錄頁
NProgress.done()
}
}
})
router.afterEach(() => {
NProgress.done() // 結束Progress
})