vue设置页面路由守卫,只让指定用户访问此页面

 第一步、封装一个方法

export function urlVerify(arr) { 
    let route = false
    store.getters.roles.forEach(res=>{//store.getters.roles是我判断当前用户的权限字符
      if(arr.includes(res)){
        route = true
      }
    })
    if(route){
      return true
    }else{
      return false
    }
 }
//调用示例
//参数为哪些用户可以进入页面
//urlVerify(['admin', 'sys', 'sys2'])

第二步、在页面调用方法

import { urlVerify } from '@/utils/auth'

beforeRouteEnter(to, from, next) {//路由守卫 跟data,methods同级
    // 在渲染该组件的对应路由被 confirm 前调用
    // 不!能!获取组件实例 `this`
    // 因为当守卫执行前,组件实例还没被创建

    if (urlVerify(['admin', 'sys', 'sys2'])) {//如果当前用户的权限字符匹配数组里的权限字符
      next()//放行
    } else {
      next('/index')//跳转主页
    }
  },

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue.js 是一个流行的前端框架,其中路由守卫是用于控制用户访问某些页面的重要功能。在登录页面,只有未登录用户才能访问,所以需要一个路由守卫来验证用户是否已经登录。 以下是一个简单的 Vue.js 登录页面路由守卫的示例: ```javascript import Vue from 'vue'; import Router from 'vue-router'; Vue.use(Router); const router = new Router({ routes: [ { path: '/login', name: 'Login', component: Login, meta: { requiresAuth: false } }, { path: '/dashboard', name: 'Dashboard', component: Dashboard, meta: { requiresAuth: true } } ] }); router.beforeEach((to, from, next) => { const requiresAuth = to.matched.some(record => record.meta.requiresAuth); const isAuthenticated = localStorage.getItem('access_token') !== null; if (requiresAuth && !isAuthenticated) { next('/login'); } else { next(); } }); export default router; ``` 在上面的例子中,我们定义了两个路由:登录页面(路径为 '/login')和仪表盘页面(路径为 '/dashboard')。登录页面不需要身份验证,所以我们将 requiresAuth 设置为 false。仪表盘页面需要身份验证,所以我们将 requiresAuth 设置为 true。 在路由守卫中,我们使用前置守卫 beforeEach() 来检查用户是否已经登录。如果 requiresAuth 为 true 并且用户未登录,则将用户重定向到登录页面。否则,用户可以访问所需的页面。 在本例中,我们使用 localStorage 存储用户访问令牌。当用户登录后,我们将访问令牌存储在 localStorage 中。在路由守卫中,我们检查 localStorage 是否有访问令牌。如果 localStorage 中存在访问令牌,则 isAuthenticated 为 true,否则为 false。 总之,路由守卫Vue.js 中的一个重要组成部分,可以帮助您控制用户访问页面的权限。在登录页面中,路由守卫可以降低安全风险,并确保仅有授权的用户才能访问所需的页面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端程序猿i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值