使用缓存实现登陆路由守卫

 以下为登陆页面点击事件,点击登录时调用接口,并将得到的值存入缓存,变量_query为拦截到的路由地址,当登录成功后,跳转到被拦截的路由页面

var _query = _this.$route.query.redirect;
if (res.data.code == 0) {
      localStorage.setItem('session3rd',_data);
      _this.$dialog.toast({
      mes: _msg,
      timeout: 1000,
      callback: () => {
          _this.$router.push(_query);
      }
   });
}

 在router的index.js中设置meta属性,添加登陆拦截需要的字段

{
      path: '/mine',
      name: 'Mine',
      component: Mine,
      meta: {
          requireAuth: true  // 添加该字段,表示进入这个路由是需要登录的
      }
}

 在main.js文件中,使用路由的beforeEach,拿到储存在缓存中的值,进行对值的判断

router.beforeEach((to, from, next) => {
    if (to.meta.requireAuth) {  // 判断该路由是否需要登录权限
        
        let isLogin=localStorage.getItem('session3rd');

        if (isLogin) {
            next();
        }
        else {
            next({
                path: '/login',
                query: {redirect: to.fullPath}  // 将跳转的路由path作为参数,登录成功后跳转到该路由
            })
        }
    }
    else {
        next();
    }
});

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值