vue项目进入页面之前判断用户是否登录

在用户想要访问需要权限的界面,例如后台界面时候,应该首先要判断用户是否拥有权限,有则进入,无则跳转。
比如,有人要访问我的后台界面,这些对外是不开放的,如果是管理员访问则,没登录之前直接跳转到管理员登录界面。

访问后台界面
访问后台界面
没有权限,跳转登录
没有权限,跳转登录

具体实现是:在路由 router.ts 文件里,给需要权限的添加一个标识,表示需要权限:

// router.ts
{
     path: "userManage", name: "userManage",
     component: () => import('@/components/xxx.vue'),
     meta: { requireAuth: true },  // look here
     children: [……]
 }           

然后在main.ts里添加一个全局路由守卫大哥,拦截所有地址栏请求:

router.beforeEach((to, from, next) => {
    if (to.meta.requireAuth) {  // 需要权限
        //判断当前是否拥有权限
        if (localStorage.getItem('xxx')) {
            next();
        } else {  // 无权,跳转登录
            next({
                path: '/userLogin',
                query: { redirect: from.fullPath }
            })
        }
    } else {  // 不需要权限,直接访问
        next();
    }
})

就是这么简单。

有问题反馈加微信:mue233 私聊问我 微信公众号:焦虑自愈教程,分享过去走出来的经验
52软件资源库 » vue项目进入页面之前判断用户是否登录