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

简介:

项目需求

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

3f63e23e8eaecf23b9dcab1c14343b2435572111

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

代码片段

  • 路由文件
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;
  });
});

以上便能实现登录之前针对某些特定路由的拦截,和后台接口授权失效时前端业务逻辑操作处理, 整篇文章仅作知识点积累,如有不妥之处,请多多包涵。

原文发布时间:2018年01月15日

作者:罗胖胖

本文来源:开源中国  如需转载请联系原作者

目录
相关文章
|
16天前
|
缓存 前端开发 API
|
4天前
|
JSON API 数据格式
Python中获取HTTP请求响应体的详解
本文介绍了如何使用Python的`requests`和`urllib`库发送HTTP请求并处理响应体。`requests`库简化了HTTP请求过程,适合快速开发;`urllib`库则更为底层,适用于性能要求较高的场景。文章详细演示了发送GET请求、处理JSON响应等常见操作。
|
3天前
|
安全 API 网络安全
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
|
10天前
|
前端开发 JavaScript Java
如何捕获和处理HTTP GET请求的异常
如何捕获和处理HTTP GET请求的异常
|
12天前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
12天前
|
安全
HTTP 协议的请求方法
【10月更文挑战第21天】
|
12天前
|
缓存 安全 前端开发
HTTP 协议的请求方法在实际应用中有哪些注意事项?
【10月更文挑战第29天】HTTP协议的请求方法在实际应用中需要根据具体的业务场景和需求,合理选择和使用,并注意各种方法的特点和限制,以确保网络通信的安全、高效和数据的一致性。
|
16天前
|
安全 API 数据安全/隐私保护
常见的HTTP请求方法
【10月更文挑战第25天】这些HTTP请求方法共同构成了客户端与服务器之间交互的基础,使得客户端能够根据不同的需求对服务器资源进行各种操作。在实际应用中,开发者需要根据具体的业务场景和资源的性质选择合适的请求方法来实现客户端与服务器之间的有效通信。
|
存储 Web App开发 监控
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
我们以前使用过的对hbase和hdfs进行健康检查,及剩余hdfs容量告警,简单易用 1.针对hadoop2的脚本: #/bin/bashbin=`dirname $0`bin=`cd $bin;pwd`STATE_OK=...
1053 0
|
Web App开发 新零售 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
1.尽可能地了解需求,系统层面适用开闭原则 2.模块化,低耦合,能快速响应变化,也可以避免一个子系统的问题波及整个大系统 3.
750 0

热门文章

最新文章