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 获取自定义属性(attr和prop)的实现代码
Jun 27 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
Aug 14 Javascript
JS如何将UTC格式时间转本地格式
Sep 04 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
javascript中基本类型和引用类型的区别分析
May 12 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
Sep 13 Javascript
微信小程序开发之左右分栏效果的实例代码
May 20 Javascript
Vue左滑组件slider使用详解
Aug 21 Javascript
一篇超完整的Vue新手入门指导教程
Nov 18 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
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php实现图片缩略图的方法
2016/03/29 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
angular.bind使用心得
2015/10/26 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
详解JavaScript 异步编程
2020/07/13 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
Python 中 list 的各项操作技巧
2017/04/13 Python
分析python请求数据
2018/08/19 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
大学生个人简历自我评价
2013/11/16 职场文书
社区工作者感言
2014/03/02 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
新年晚会主持词
2014/03/24 职场文书
2015年父亲节寄语
2015/03/23 职场文书
党员转正申请报告
2015/05/15 职场文书
房屋产权证明书
2015/06/19 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
Python基础之数据结构详解
2021/04/28 Python
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
i7 6700处理器相当于i5几代
2022/04/19 数码科技