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 ajax方式直接提交整个表单核心代码
Aug 15 Javascript
javascript日期对象格式化为字符串的实现方法
Jan 14 Javascript
在JavaScript中构建ArrayList示例代码
Sep 17 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
Sep 10 Javascript
jQuery实现获取元素索引值index的方法
Sep 18 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
JS求Number类型数组中最大元素方法
Apr 08 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
Sep 10 Javascript
js 递归json树实现根据子id查父id的方法分析
Nov 08 Javascript
koa2的中间件功能及应用示例
Mar 05 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 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
Protoss兵种对照表
2020/03/14 星际争霸
Cannot modify header information错误解决方法
2008/10/08 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
javascript 特殊字符串
2009/02/25 Javascript
javascript prototype 原型链
2009/03/12 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
python实现简单日志记录库glog的使用
2019/12/13 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
全国道德模范事迹
2014/02/01 职场文书
会计岗位描述
2014/02/22 职场文书
教师自查自纠材料
2014/10/14 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
家长高考寄语
2015/02/27 职场文书
酒店辞职信怎么写
2015/02/27 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
护理培训心得体会
2016/01/22 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
vue elementUI表格控制对应列
2022/04/13 Vue.js
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers