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 相关文章推荐
JavaScript 学习笔记(十一)
Jan 19 Javascript
Jquery判断IE6等浏览器的代码
Apr 05 Javascript
js中单引号与双引号冲突问题解决方法
Oct 04 Javascript
浅谈javascript中onbeforeunload与onunload事件
Dec 10 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 Javascript
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
PHP中其实也可以用方法链
2011/11/10 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
PDO::exec讲解
2019/01/28 PHP
使javascript也能包含文件
2006/10/26 Javascript
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
详解node nvm进行node多版本管理
2017/10/21 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
python版本的仿windows计划任务工具
2018/04/30 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
Python SELENIUM上传文件或图片实现过程
2019/10/28 Python
Python程序控制语句用法实例分析
2020/01/14 Python
关于Django Models CharField 参数说明
2020/03/31 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
优秀求职信范文分享
2013/12/19 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python