做了一个结合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
})