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 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
javascript实现10个球随机运动、碰撞实例详解
Jul 08 Javascript
jQuery超赞的评分插件(8款)
Aug 20 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
创建一个类Person的简单实例
May 17 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
Jul 21 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
JavaScript获取某一天所在的星期
Sep 05 Javascript
jQuery实现弹出层效果
Dec 10 jQuery
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内核探索:变量存储与类型使用说明
2014/01/30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
jquery获取radio值实例
2014/10/16 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
利用python生成一个导出数据库的bat脚本文件的方法
2016/12/30 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
python join方法使用详解
2019/07/30 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Django配置文件代码说明
2019/12/04 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
Python控制台实现交互式环境执行
2020/06/09 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
金融专业大学生自我评价
2014/01/09 职场文书
骨干教师培训制度
2014/01/13 职场文书
汽车专业学生自我评价
2014/01/19 职场文书
十岁生日同学答谢词
2014/01/19 职场文书
幼儿园园务工作总结2015
2015/05/18 职场文书
教师节感想
2015/08/11 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
vue ref如何获取子组件属性值
2022/03/31 Vue.js