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 相关文章推荐
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
简单实现bootstrap导航效果
Feb 07 Javascript
js转换对象为xml
Feb 17 Javascript
Angular2 路由问题修复详解
Mar 01 Javascript
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
讲解vue-router之什么是嵌套路由
May 28 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
基于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
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
onpropertypchange
2006/07/01 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
如何将python中的List转化成dictionary
2016/08/15 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
离婚协议书范本2014
2014/10/27 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL