vue 路由守卫放行权限
时间: 2023-08-27 16:16:26 浏览: 136
在 Vue 中,你可以使用路由守卫来控制路由的访问权限。下面是一种常见的方式来实现路由守卫的权限放行:
```javascript
const router = new VueRouter({
routes: [
{
path: '/public',
component: PublicComponent,
meta: { requiresAuth: false } // 不需要登录即可访问
},
{
path: '/private',
component: PrivateComponent,
meta: { requiresAuth: true } // 需要登录才能访问
}
]
});
router.beforeEach((to, from, next) => {
if (to.meta.requiresAuth) {
// 判断用户是否已登录或拥有足够的权限
if (hasPermission()) {
next(); // 放行路由
} else {
next('/login'); // 重定向到登录页面或其他未授权页面
}
} else {
next(); // 不需要权限,直接放行
}
});
function hasPermission() {
// 判断用户是否已登录或拥有足够的权限,返回 true 或 false
}
```
在上述示例中,`beforeEach` 路由守卫会在每次路由切换之前执行。如果目标路由需要登录或拥有足够的权限(`requiresAuth` 为 `true`),则会检查用户是否已登录或拥有足够的权限。如果用户已登录或拥有足够的权限,则放行路由;否则,重定向到登录页面或其他未授权页面。对于不需要权限的路由,会直接放行。
你可以根据自己的需求在 `hasPermission` 函数中实现相应的权限判断逻辑。
阅读全文