我想将未经身份验证的用户重定向到“/login”路由,并在身份验证用户尝试访问登录页面时将其重定向到“/”。
当用户登录时,我把他的信息放在商店上以便于检索。当没有用户登录时,商店上的用户认证信息仍然为空。
所以,在我的/login的beforeEnter中,我想像这样重定向他:slight_smile:
beforeEnter: (to, from, next) => {
if (store.getters.userAuthenticated != null) {
next('/')
} else {
next()
}
}
我在这里的问题是我的userAuthenticated在getter中始终为null,即使我已登录。当我放置控制台. log(store.getters)时,我在userAuthenticated getter中看到了实际信息。
似乎beforeEnter中的数据与存储中的实际数据不同步。
我该怎么做?
非常感谢!
你就是这么做的
router.beforeEach((to, from, next) => {
let nextParams
let pageRequiresAuth = to.matched.some(record => record.meta.requiresAuth)
let userSignedIn = store.getters['user/signedIn']
if (pageRequiresAuth) {
if (!userSignedIn)
nextParams = { path: paths.signInPath }
} else {
if (userSignedIn)
// don't let see auth pages after if user already signed in
nextParams = { path: paths.afterSignInPath }
}
next(nextParams)
})