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 相关文章推荐
jquery插件jbox使用iframe关闭问题
Feb 09 Javascript
javascript 装载iframe子页面,自适应高度
Mar 20 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
web前端开发中常见的多列布局解决方案整理(一定要看)
Oct 15 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 Javascript
在 Node.js 中使用 async 函数的方法
Nov 17 Javascript
Angular5集成eventbus的示例代码
Jul 19 Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 Javascript
Vue常用的几个指令附完整案例
Nov 06 Javascript
vue实现放大镜效果
Sep 17 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+jQuery实现自动补全功能源码
2013/05/15 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
javascript div 弹出可拖动窗口
2009/02/26 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
微信小程序页面渲染实现方法
2019/11/06 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
浅谈python3.6的tkinter运行问题
2019/02/22 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
租赁意向书范本
2014/04/01 职场文书
教师教学评估方案
2014/05/09 职场文书
监督检查工作方案
2014/05/28 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏