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 相关文章推荐
jquery 实现的全选和反选
Apr 15 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
IE中createElement需要注意的一个问题
Jul 13 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
深入分析javascript中console命令
Aug 14 Javascript
深入理解JavaScript继承的多种方式和优缺点
May 12 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
Jul 07 Javascript
js删除数组中某几项的方法总结
Jan 16 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
js实现消灭星星(web简易版)
Mar 24 Javascript
浅谈Ant Design Pro 菜单自定义 icon
Nov 17 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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
php 函数中使用static的说明
2012/06/01 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
jquery实现简单的无缝滚动
2015/04/15 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
Python实现仿射密码的思路详解
2020/04/23 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
房地产营销策划方案
2014/02/08 职场文书
博士导师推荐信
2015/03/25 职场文书
就业导师推荐信范文
2015/03/27 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
Python学习之包与模块详解
2022/03/19 Python