Vue路由守卫(权限拦截控制)

文章介绍了在Vue.js应用中实现权限拦截的策略,包括使用路由守卫检查本地token来决定是否已登录,以及在访问父组件时获取并存储用户信息。如果token过期,用户将被重定向至登录页面。同时,代码示例展示了如何在组件创建前进行权限检查,并利用ElementUI的Message组件显示错误信息。
摘要由CSDN通过智能技术生成

一、权限拦截控制思路


 1. 设置组件路由守卫,从本地拿到token,如果有token就代表已经登录了,可以访问其他页面,如果没有token就提示未登录,跳转到登录页面
 2. 如果有token,在访问一个父组件的时候就携带该token发送请求获取用户信息,获取用户信息成功就把信息存到vuex中,失败了,就是token过期了,返回登陆页面 

父组件代码:

<script>
import myAside from "@/views/managehome/aside/Aside.vue";
import myHeader from "@/views/managehome/header/Header.vue";
import myMian from "@/views/managehome/main/Main.vue";
import { getUserInfo } from "@/api/index.js";
// 引入messsage
import { Message } from "element-ui";
export default {
  name: "myManagehome",
  components: {
    myAside,
    myHeader,
    myMian
  },
  async created() {
    await getUserInfo()
      .then(res => {
        if (res.data.code == 1000) {
          this.$store.commit('UserInfo/SETUSERINFO',res.data.data)
        } else {
          this.$router.push("/login");
        }
      })
      .catch(err => {
        console.log(err);
      });
  },
  // 组件路由首位
  beforeRouteEnter(to, from, next) {
    const token = localStorage.getItem('token')
    if(token){
      next()
    }else{
      Message.error('未登录')
      next('/login')
    }
  }
};
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

忧郁火龙果

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

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

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

打赏作者

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

抵扣说明:

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

余额充值