vue登录注册及token验证实现代码


Posted in Javascript onDecember 14, 2017

在大多数网站中,实现登录注册都是结合本地存储cookie、localStorage和请求时验证token等技术。而对于某些功能页面,会尝试获取本地存储中的token进行判断,存在则可进入,否则跳到登录页或弹出登录框。

而在vue单页中,我们可以通过监控route对象,从中匹配信息去决定是否验证token,然后定义后续行为。

具体实现代码如下:

1. 利用router.beforeEach钩子, 判断目标路由是否携带了相关meta信息

// router.js
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
 {
  path: '/',
  component: require('./views/Home'),
  meta: {
   requiresAuth: true
  }
 },
]
const router = new VueRouter({
 routes: routes
})
router.beforeEach((to, from, next) => {
 let token = window.localStorage.getItem('token') 
 if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === null)) {
  next({
   path: '/login',
   query: { redirect: to.fullPath }
  })
 } else {
  next()
 }
})
export default router

2. watch route对象。原理同上。

<script>
  // App.vue
  export default {
    watch:{
      '$route':function(to,from){
        let token = window.localStorage.getItem('token');



  if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === null)) {





  next({
 




  path: '/login',
 




  query: { redirect: to.fullPath }





  })




  } else {



     next()




  }
   
 }
  
}
  }
</script>

总结

以上所述是小编给大家介绍的vue登录注册及token验证实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Jqgrid设置全选(选择)及获取选择行的值示例代码
Dec 28 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
Dec 29 Javascript
jQuery密码强度验证控件使用详解
Jan 05 Javascript
详解Angualr 组件间通信
Jan 21 Javascript
Bootstarp 基础教程之表单部分实例代码
Feb 03 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 Javascript
如何使用Bootstrap创建表单
Mar 29 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
vue组件通信传值操作示例
Jan 08 Javascript
vue+element UI实现树形表格
Dec 29 Vue.js
基于vue 实现token验证的实例代码
Dec 14 #Javascript
JavaScript实现左侧菜单效果
Dec 14 #Javascript
JavaScript实现全选取消效果
Dec 14 #Javascript
vue.js中引入vuex储存接口数据及调用的详细流程
Dec 14 #Javascript
javascript实现数字配对游戏的实例讲解
Dec 14 #Javascript
form表单数据封装成json格式并提交给服务器的实现方法
Dec 14 #Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
Dec 14 #Javascript
You might like
php多文件打包下载的实例代码
2017/07/12 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
异步加载script的代码
2011/01/12 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
pandas值替换方法
2018/07/10 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
python实现最速下降法
2020/03/24 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
python音频处理的示例详解
2020/12/23 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
李维斯德国官方网上商店:Levi’s德国
2016/09/10 全球购物
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
大学生职业生涯规划范文
2014/01/22 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
优秀班组事迹材料
2014/12/24 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
学术会议开幕词
2016/03/03 职场文书
导游词之镇江焦山
2019/11/21 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
MySQL索引是啥?不懂就问
2021/07/21 MySQL
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers