vue登录路由验证的实现


Posted in Javascript onDecember 13, 2017

vue的项目的登录状态如果用vuex状态管理,页面一刷新vuex管理的状态就会消失,这样登录路由验证就没有意义了。可以将登录的状态写到web Storage中进行存储管理。

步骤如下:

1、在登录组件里,将登录状态写入web Storage里。(一般写入session Storage,会话关闭,存储数据自动删除)

if('登录成功') 
 {sessionStorage.setItem('accessToken' , 写入登录成功返回的登录令牌或者自定义的判断字符串) }

2、在需要登录验证的路由元信息里加入登录验证标识requiresAuth(自定义)    
[html] view plain copy

routers: [ 
      { path: '/listInfo', 
         name: 'listInfo', 
         component: listInfo, 
         meta: { requiresAuth: true  
               } 
          } 
       ]

3、在全局钩子函数beforeEach中验证页面是否需要登录            

router.beforeEach((to, from, next) => {  
    //to即将进入的目标路由对象,from当前导航正要离开的路由, next : 下一步执行的函数钩子
    if(to.path === '/login') { next() } // 如果即将进入登录路由,则直接放行
     else {   //进入的不是登录路由
         if(to.meta.requiresAuth && !sessionStorage.getItem('accessToken')) {next({ path: '/login' })} 
       //下一跳路由需要登录验证,并且还未登录,则路由定向到 登录路由
       else { next() }} 
      //如果不需要登录验证,或者已经登录成功,则直接放行
    }

 注意点:beforeEach这个全局钩子要放到全局组件的前面,放到全局组件的后面,Vue实例已经加载完成。这时候直接在浏览器的地址栏输入要去的路由,则不会定向到登录路由。 

vue登录路由验证的实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
很全的显示阴历(农历)日期的js代码
Jan 01 Javascript
简易js代码实现计算器操作
Apr 15 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
jQuery事件用法实例汇总
Aug 29 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
本地存储localStorage用法详解
Jul 31 Javascript
Angular使用cli生成自定义文件、组件的方法
Sep 04 Javascript
layui中select,radio设置不生效的解决方法
Sep 05 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
Apr 23 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
微信小程序实现弹框效果
May 26 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 #Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
Dec 13 #Javascript
vue组件中使用iframe元素的示例代码
Dec 13 #Javascript
vue中路由验证和相应拦截的使用详解
Dec 13 #Javascript
vue实现nav导航栏的方法
Dec 13 #Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 #Javascript
仿京东快报向上滚动的实例
Dec 13 #Javascript
You might like
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php 格式化数字的时候注意数字的范围
2010/04/13 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
js的写法基础分析
2011/01/17 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
继续学习javascript闭包
2015/12/03 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
什么是方法的重载
2013/06/24 面试题
销售工作人员的自我评价分享
2013/11/10 职场文书
建设工地安全标语
2014/06/07 职场文书
网络销售员岗位职责
2015/04/11 职场文书
导游词之广西漓江
2019/11/02 职场文书
怎么用Python识别手势数字
2021/06/07 Python
Python Pandas常用函数方法总结
2021/06/15 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python