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 相关文章推荐
40款非常有用的 jQuery 插件推荐(系列一)
Dec 21 Javascript
Javascript限制网页只能在微信内置浏览器中访问
Nov 09 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
Mar 04 Javascript
js+css实现上下翻页相册代码分享
Aug 18 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
详解jQuery事件
Jan 13 Javascript
JS中静态页面实现微信分享功能
Feb 06 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
Apr 27 jQuery
Vue之Watcher源码解析(1)
Jul 19 Javascript
基于DOM节点删除之empty和remove的区别(详解)
Sep 11 Javascript
前端框架ECharts dataset对数据可视化的高级管理
Dec 24 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把网页保存为word文件的三种方法
2014/04/01 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
JS 对象介绍
2010/01/20 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
jQuery easyui datagrid动态查询数据实例讲解
2013/02/26 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
ionic3 懒加载
2017/08/16 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
Python排序算法实例代码
2017/08/10 Python
python去掉空白行的多种实现代码
2018/03/19 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python3实现mysql导出excel的方法
2019/07/31 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
什么是属性访问器
2015/10/26 面试题
公司外出活动方案
2014/08/14 职场文书
励志演讲稿300字
2014/08/21 职场文书
财务个人年度总结范文
2015/02/26 职场文书
全国助残日活动总结
2015/05/11 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python