zoukankan      html  css  js  c++  java
  • vue单页面应用简单实现登录逻辑

    当用户在没有登录的状态下,只能够访问到系统的登录界面,不管输入的路由是什么,都会跳转到登录界面,当用户登录成功后,就会将登录的信息保存到 sessionStorage中,话不多说,直接上代码:

    第一步是配置路由:第一个路由是不需要登录就能够进入的路由,第二个是需要登录才能进入的路由

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

    第二步:在登录界面点击登录按钮时,当用户名和秘密都正确的时候,将登录状态存到sessionStorage,我这里是使用isLogin:true的方式存放到sessionStorage中,并且是在store中进行修改的:代码如下:login.vue文件:

    this.$store.commit('login',values.userName);
    this.$router.push({name:'BackupDataView'}); //登录成功后跳转到的页面

    store文件:

    //state中的token的初始值是false,表示未登录
    login(state,n){ state.token
    =true; state.username=n; sessionStorage.setItem('isLogin',true); sessionStorage.setItem('name',n); //用于全局展示是谁登录系统 },

    第三步:在main.js文件中设置全局路由守卫,代码如下:

    router.beforeEach((to,from,next)=>{
      //window.document.title=to.meta.title;
      if(to.meta.requireAuth == true){  //需要登录权限进入的路由
        if(store.state.token){  //取到登录信息
           next()
        }else if(sessionStorage.getItem('isLogin')){  //得到登录信息,进行下一步
          next();
        }else{
            next({name:'Login'});
        }
      }else{  //不需要登录权限
         next();
      }
    })

    完成这些配置,简单的登录逻辑就算是实现完成

  • 相关阅读:
    PHP用*号替代姓名除第一个字之外的字符
    苹果笔记本下载的应用打不开或提示损坏怎么办
    codeigniter教程:Codeigniter出现Unable to connect to your databas
    Python3.6.0安装
    某游戏应用的redis 数据库结构设计(转)
    True(False) Positives (Negatives), 召回率和精度定义
    儿童书库
    年轻人必须知道的71个做饭技巧
    20种泡菜做法[3到5天就可以吃了]
    读懂此文——股市就是你的取款机
  • 原文地址:https://www.cnblogs.com/kdiekdio/p/12242340.html
Copyright © 2011-2022 走看看