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 相关文章推荐
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
Dec 06 Javascript
JavaScript中valueOf函数与toString方法深入理解
Dec 02 Javascript
js 判断计算字符串长度/判断空的简单方法
Aug 05 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
Sep 02 Javascript
javascript控制台详解
Jun 25 Javascript
JavaScript中的操作符类型转换示例总结
May 30 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
Jul 09 Javascript
微信小程序 canvas API详解及实例代码
Oct 08 Javascript
express文件上传中间件Multer详解
Oct 24 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 Javascript
浅谈开发eslint规则
Oct 01 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
Apr 11 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表单敏感字符过滤类
2014/12/08 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
vue router demo详解
2017/10/13 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
python批量提交沙箱问题实例
2014/10/08 Python
Python中join和split用法实例
2015/04/14 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
Python Cookie 读取和保存方法
2018/12/28 Python
详解pyppeteer(python版puppeteer)基本使用
2019/06/12 Python
Python连接mysql方法及常用参数
2020/09/01 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
用python制作个音乐下载器
2021/01/30 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
CSS3的新特性介绍
2008/10/31 HTML / CSS
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
创业计划书撰写原则
2014/01/25 职场文书
运动会解说词100字
2014/01/31 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
优秀党支部申报材料
2014/12/24 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android