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 相关文章推荐
一个对于js this关键字的问题
Jan 09 Javascript
javascript getElementsByTagName
Jan 31 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
Mar 04 Javascript
js简单实现删除记录时的提示效果
Dec 05 Javascript
Jquery跳到页面指定位置的方法
May 12 Javascript
javascript history对象详解
Feb 09 Javascript
JSON创建键值对(key是中文或者数字)方式详解
Aug 24 Javascript
微信小程序实现提交input信息到后台的方法示例
Jan 19 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 Javascript
JS实现躲避粒子小游戏
Jun 18 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
Oct 12 Javascript
JavaScript前端面试组合函数
Jun 21 Javascript
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
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
js 页面输出值
2008/11/30 Javascript
JS 常用校验函数
2009/03/26 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
jQuery 开发者应该注意的9个错误
2012/05/03 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
Vue路由守卫之路由独享守卫
2019/09/25 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
用Python读取几十万行文本数据
2018/12/24 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
爷爷追悼会答谢词
2014/01/24 职场文书
师德师风承诺书
2014/05/23 职场文书
运动会班级口号
2014/06/09 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
精神文明建设先进个人事迹材料
2014/12/24 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书