vue 权限认证token的实现方法


Posted in Javascript onJuly 17, 2018

最近搞一个vue的项目,接口带了权限验证,于是乎稍微研究了一下,中间遇到的各种坑都来源于自己概念的不熟悉。

主要呢是分两步:

一是vue路由层的控制,由于项目的路由有规律可循,所以没有采用网上requireAuth那种在需要加验证的路由上配置meta(具体见:https://3water.com/article/143928.htm)

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

const router = new Router({...})

router.beforeEach((to, from, next) => {
 if(/^\/[S|B|V]/.test(to.path)){
  if (isLogin()) {//判断token信息的自写方法
   next();
  }
  else {
   next({ name: 'login' })//跳转到登录页
  }
 }
 else {
  next();
 }
})

二是http 拦截器 ,统一处理所有http请求和响应,就得用上 axios 的拦截器。

import axios from 'axios'
// http request 拦截器
axios.interceptors.request.use(function (config) {
  config.headers.token = sessionStorage.getItem("user_token")//将接口返回的token信息配置到接口请求中
  return config;
}, function (error) {
  return Promise.reject(error);
});
// http response 拦截器
axios.interceptors.response.use(function(response){
  if(response.data.code=='1001'||response.data.code=='1002'){//具体的判断token失效的参数
    sessionStorage.setItem("user_token",'')
    sessionStorage.setItem("LoginUser",'{}')
    alert(response.data.msg);
    window.location.href='/#/login'//需求方要求一旦出错立即跳转登录,所以采取这种侵入式的手段。
  }else{
    return response
  }
}, function (error) {
  return Promise.reject(error);
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入解析contentWindow, contentDocument
Jul 04 Javascript
jquery 页面滚动到指定DIV实现代码
Sep 25 Javascript
JavaScript数组操作详解
Feb 04 Javascript
vue.js简单配置axios的方法详解
Dec 13 Javascript
vue中实现methods一个方法调用另外一个方法
Feb 08 Javascript
JS实现的文字间歇循环滚动效果完整示例
Feb 13 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
vue使用vue-i18n实现国际化的实现代码
Apr 08 Javascript
js作用域和作用域链及预解析
Apr 11 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 Vue.js
vue 实现axios拦截、页面跳转和token 验证
Jul 17 #Javascript
详解webpack import()动态加载模块踩坑
Jul 17 #Javascript
vue-router中的hash和history两种模式的区别
Jul 17 #Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
Jul 17 #Javascript
SVG实现时钟效果
Jul 17 #Javascript
JS中实现隐藏部分姓名或者电话号码的代码
Jul 17 #Javascript
基于D3.js实现时钟效果
Jul 17 #Javascript
You might like
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
php利用iframe实现无刷新文件上传功能的代码
2011/09/29 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
js实现旋转的星空效果
2019/11/01 Javascript
Python中int()函数的用法浅析
2017/10/17 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
Django model select的多种用法详解
2019/07/16 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
Python实现AI换脸功能
2020/04/10 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
最新销售员个人自荐信
2013/09/21 职场文书
业务员岗位职责
2013/11/16 职场文书
管理心得体会
2013/12/28 职场文书
文明寝室申报材料
2014/05/12 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
大型公益活动策划方案
2014/08/20 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android