vue路由跳转判断用户是否登录
时间: 2023-07-27 19:12:55 浏览: 51
在Vue中,可以使用导航守卫来检查用户是否已经登录并防止未经授权的访问。
在路由配置中,可以为需要验证的路由设置`meta`信息,如下所示:
```js
const routes = [
{
path: '/home',
name: 'Home',
component: Home,
meta: { requiresAuth: true } // 需要登录验证
},
{
path: '/login',
name: 'Login',
component: Login
}
]
```
然后,在路由实例中使用`beforeEach`守卫,如下所示:
```js
router.beforeEach((to, from, next) => {
const requiresAuth = to.matched.some(record => record.meta.requiresAuth) // 判断是否需要登录验证
const isAuthenticated = localStorage.getItem('token') // 判断用户是否已经登录(这里假设使用 localStorage 存储登录状态)
if (requiresAuth && !isAuthenticated) { // 如果需要登录验证且用户未登录,则跳转到登录页面
next('/login')
} else {
next()
}
})
```
在上面的代码中,我们通过`to.matched.some(record => record.meta.requiresAuth)`来判断该路由是否需要登录验证,如果需要,则检查用户是否已经登录,如果用户未登录,则跳转到登录页面。如果用户已经登录,则放行路由,允许用户访问受保护的页面。
需要注意的是,上述代码中的`localStorage.getItem('token')`是一个示例,实际情况中需要根据具体的登录方式来判断用户是否已经登录。