【发布时间】:2018-10-07 08:33:10
【问题描述】:
当我使用router.push('/') 作为注销的最后一步时遇到问题。
如果我从/ redirects 到的同一路由触发注销过程,router.beforeEach 将不会被触发,因此不会将用户重定向到/login,但仍会显示应该只对已登录的用户可见(在注销过程结束时用户不再存在)。
{
path: '/',
redirect: 'foo'
},
{
path: '/foo',
name: 'foo',
component: Foo,
meta: {
requiresAuth: true
}
},
和
router.beforeEach((to, from, next) => {
...
if(to.requiresAuth && userLoggedIn == false)
next('/login')
...
因此,如果我从/foo 以外的任何路由触发注销,它会按预期工作,但如果我从/foo 触发它,用户将不重定向到/login。
我想这可能是为了使路由尽可能高效,但在这种情况下,这绝对不是我想要的。
如何确保我的beforeEach 路由守卫将在每个router.push/replace 上进行评估?
【问题讨论】:
-
为什么要在注销时推送相同的路径?你不应该推送登录路径吗?那肯定会触发
router.beforeEach,因为路径实际上会有所不同。 -
我希望用户进入主页,而不是登录页面...
标签: vue.js vuejs2 vue-router