vue-resource请求实现http登录拦截或者路由拦截的方法


Posted in Javascript onJuly 11, 2018

本文介绍了vue-resource请求实现http登录拦截或者路由拦截的方法,分享给大家,具体如下:

项目需求

  • 项目是前后台分离,前端负责数据对接,以及业务逻辑的处理,后台只需要给相应的接口即可
  • 后台会控制接口的授权情况(即,未登录的接口,统一返回401未授权状态码,前端根据vue-resource的拦截器拦截符合条件的状态,并做出相应的处理。)
  • 以下为两个系统的登录页面,作为请求超时或者登录拦截的跳转页面

vue-resource请求实现http登录拦截或者路由拦截的方法

以上是登录超时,登录弹窗框自动弹出来

代码片段

路由文件

export default [
 {
  name: 'root',
  path: '',
  component: function (resolve) {
   require(['你的vue文件路径地址'], resolve);
  },
  children: [
    {
      name: 'applicationLayout',
      path: '/app/applicationLayout/:appId',
      component: function (resolve) {
       require(['你的vue文件路径地址'], resolve);
      },
      meta: {
       requireAuth: true,    // 需要登录才能进入的页面可以增加一个meta属性
      }
    }
  ] 
]

main.js 入口文件中加入以下代码

const UNAUTHORIZED_CODE = 401;

router.beforeEach((to, from, next) => {
 if (to.meta.requireAuth) {
  if (storage.get('platformUser')) {
   store.dispatch('loginUser', JSON.parse(storage.get('platformUser')));    //将用户信息存储到vuex中,供全局使用
   next();
  } else {
   store.dispatch('initLoginModal', {state: true});     //显示登录弹窗
   next();
  }
 } else {
  next();
 }
});

//拦截http请求中返回401状态码,并针对其显示登录弹窗
Vue.http.interceptors.push((request, next) => {
 next((response) => {
  if (response.body.status === UNAUTHORIZED_CODE) { //与后台约定登录失效的返回码
   store.dispatch('initLoginModal', {state: true});        //显示登录弹窗
   store.dispatch('removeUser');                      //移出浏览器中存储的用户信息
  }
  return response;
 });
});

以上便能实现登录之前针对某些特定路由的拦截,和后台接口授权失效时前端业务逻辑操作处理, 整篇文章仅作知识点积累,如有不妥之处,请多多包涵。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网络图片延迟加载实现代码 超越jquery控件
Mar 27 Javascript
判断用户的在线状态 onbeforeunload事件
Mar 05 Javascript
js Dialog 去掉右上角的X关闭功能
Apr 23 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
May 18 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
May 25 Javascript
webpack-url-loader 解决项目中图片打包路径问题
Feb 15 Javascript
jquery分页优化操作实例分析
Aug 23 jQuery
利用layer实现表单完美验证的方法
Sep 26 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
Jun 02 Javascript
vue.js实现的经典计算器/科学计算器功能示例
Jul 11 #Javascript
Vue.js实现的计算器功能完整示例
Jul 11 #Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 #Javascript
React中嵌套组件与被嵌套组件的通信过程
Jul 11 #Javascript
JSON数据中存在单个转义字符“\”的处理方法
Jul 11 #Javascript
JS实现动态生成html table表格的方法分析
Jul 11 #Javascript
vue监听键盘事件的快捷方法【推荐】
Jul 11 #Javascript
You might like
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
Python测试人员需要掌握的知识
2018/02/08 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Pandas过滤dataframe中包含特定字符串的数据方法
2018/11/07 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
NET程序员上机面试题
2015/05/23 面试题
助人为乐表扬信范文
2014/01/14 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
车队司机个人自我鉴定
2014/04/17 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
法律专业自荐信
2014/06/03 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
Python基础详解之邮件处理
2021/04/28 Python
python中的plt.cm.Paired用法说明
2021/05/31 Python
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle