vue-判断用户是否登录

在项目中,最基本的登录都是必须的,结合Vue的路由,涉及最多的就是登录状态的判断。
(1)判断登录方案需要满足下面几点:
未登录状态下的刷新:

  1. 在需要登录页面中刷新是需要跳转到登录页的;
  2. 在不需要登录的页面中刷新,不需要跳转;

(2)在未登录状态下,跳转到需要登录页面时,会直接跳转到登录页;

一、先在路由文件里修改--------router / index.js 路由中加校验
直接在路由配置的时候,给路由添加一个自定义的meta对象,在meta对象中可以设置一些状态,来进行一些操作。用它来做登录校验再合适不过了

{
      path: "/mengxiang",
      name: "Mengxiang",
      component: Mengxiang,
      meta: {
        needLogin: true //需要加校检判断的路由
      },
    },

二、main.js 中判断该路由是否需要登录权限

router.beforeEach(function(to, from, next) {
  if (to.meta.needLogin) {
    //页面是否登录
    if (localStorage.getItem("token")) {
      //本地存储中是否有token(uid)数据
      next(); //表示已经登录
    } else {
      //next可以传递一个路由对象作为参数 表示需要跳转到的页面
      next({
        name: "login"
      });
    }
  } else {
    //表示不需要登录
    next(); //继续往后走
  }
});

三、login.vue 登录组件内,登陆成功后的处理

  methods: {
    onClickLeft() {
      this.$router.go("-1");
    },
    login() {
      axios({
        type: "get",
        url: "请求的接口路径",
        params: { username: this.phone, password: this.password }
      }).then(res => {
        console.log(res);
        localStorage.setItem("token", this.phone);
        this.$router.push({
          name: "Home"
        });
      });
    },
    }

以上就实现了判断是否登录的状态,如果未登录的状态就会跳转到登录页面

  • 19
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
vue-element-admin是一个基于Vue.js和Element UI的后台管理系统模板。在登录过程中,通过路由守卫来判断用户是否登录。具体逻辑如下: 1. 登录成功后,跳转到首页。在路由跳转之前,会进行以下判断: 1.1 如果存在token,则判断跳转的路由是否登录页面。 1.1.1 如果是登录页面,则直接放行。 1.1.2 如果不是登录页面,则判断vuex中是否保存了当前账号的角色。 1.1.2.1 如果有保存角色信息,则直接放行。 1.1.2.2 如果没有保存角色信息,则分别调用getUserInfo()、getInfo()、generateRoutes方法获取当前账号的用户信息、角色信息和菜单数据,并存入vuex。 1.2 如果不存在token,则强制跳转到登录页面。 在路由守卫中,如果用户没有token,且访问的页面不在免登录白名单中,则会被重定向到登录页面。 登录详解的具体实现可以参考vue-element-admin的源代码。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [理解vue-element-admin 的登录流程](https://blog.csdn.net/qq_45791799/article/details/122978728)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [(3)vue-element-admin:权限管理(登录登出,动态路由过程讲解)](https://blog.csdn.net/qq_42499670/article/details/119542766)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值