返回顶部
首页 > 资讯 > 后端开发 > Python >Django中间件整合Vue拦截器的使用
  • 302
分享到

Django中间件整合Vue拦截器的使用

2024-04-02 19:04:59 302人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录axiOS拦截器是什么?拦截器的使用请求拦截器响应拦截器Django中间件token验证中间件相关自定义中间件中间件的执行流程用中间件进行登录认证总结axios拦截器是什么?

axios拦截器是什么?

axios拦截器可以拦截每一次的请求和响应,然后进行相应的处理。拦截器分为请求拦截器和响应拦截器,请求拦截器可以统一在你发送请求前在请求体里加上token;响应拦截器的话,是在接受到响应之后进行的一些操作,比如,服务器返回登录状态失效,需要重新登录的时候,就给它跳到登录页面;

拦截器的使用

我一般喜欢全局配置(main.js

请求拦截器


//  interceptors
axios.interceptors.request.use(
  config => {
 // 获取登录成功状态保持的token
    let token = localStorage.getItem('token')
 // 如果有token就在头部加上token
    if (token) {
      config.headers['Authorization'] = token
    }
    return config
  },
  error => {
 // 如果没有token,返回错误的信息
    return Promise.reject(error.response);
  });

响应拦截器


axios.interceptors.response.use(function (response) {
    // 在接收响应做些什么,例如跳转到登录页
    ......
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });

拦截器超级好用~~~

DjanGo中间件token验证

中间件相关

中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。说的直白一点,中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在请求的特定的时间去执行这些方法。

自定义中间件

中间件可以定义五个方法,分别是:(主要的是process_request和process_response)

  • process_request(self,request)
  • process_view(self, request, view_func, view_args, view_kwargs)
  • process_template_response(self,request,response)
  • process_exception(self, request, exception)
  • process_response(self, request, response)

以上方法的返回值可以是None或一个HttpResponse对象,如果是None,则继续按照django定义的规则向后继续执行,如果是HttpResponse对象,则直接将该对象返回给用户。

中间件的执行流程

  请求到达中间件之后,先按照正序执行每个注册中间件的process_reques方法process_request方法返回的值是None,就依次执行,如果返回的值是HttpResponse对象,不再执行后面的process_request方法,而是执行当前对应中间件的process_response方法。HttpResponse对象返回给浏览器。也就是说:如果MIDDLEWARE中注册了6个中间件,执行过程中,第3个中间件返回了一个HttpResponse对象,那么第4,5,6中间件的process_request和process_response方法都不执行,顺序执行3,2,1中间件的process_response方法。

用中间件进行登录认证

战术喝水~~ 上代码


# Author : Carl
# Date :2021/8/27 9:43
# File :tokenMiddleware.py

from django.http import HttpResponse
from django.utils.deprecation import MiddlewareMixin

import Jwt

from meiduo import settings


class TokenMiddleware(MiddlewareMixin):
    """
    中间件生成Token
    """

    def process_request(self, request):
        """
        token认证
        :param request:
        :return:token
        """
        # 获取url
        url = request.get_full_path()
        # 定义一个白名单 注册登录接口 随便访问
        white_list = ['/sadmin/login/','/admin/']
        # 判断url在不在白名单中
        if url not in white_list:
            # 获取token jwttoken认证去认证
            token = request.META.get('HTTP_AUTHORIZATION')
            # 解析验证
            if token:
                # 解决原来的token
                old_token = jwt.decode(token, settings.SECRET_KEY, algorithms=['HS256'])
                # 重新生成token
                new_token = str(jwt.encode(old_token, settings.SECRET_KEY, algorithm='HS256'), encoding='utf8')
                if token == new_token:
                    return None
            return HttpResponse('401')
        return None
 

总结

在请求接口的时候,如果用户没有登录,则在请求到达中间件时放行,加入视图层,在视图层进行密码手机号,用户名,密码等的匹配,匹配成功之后,将生成的token返回到前端进行状态保持,使用拦截器在每一次请求的头部加上token(状态保持的token),由中间件对token进行解析对比,对比成功则进入视图层,否则,返回401(没有权限)。

到此这篇关于Django中间件整合Vue拦截器的使用的文章就介绍到这了,更多相关Django Vue拦截器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django中间件整合Vue拦截器的使用

本文链接: https://lsjlt.com/news/134209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Django中间件整合Vue拦截器的使用
    目录axios拦截器是什么?拦截器的使用请求拦截器响应拦截器Django中间件token验证中间件相关自定义中间件中间件的执行流程用中间件进行登录认证总结axios拦截器是什么? ...
    99+
    2024-04-02
  • .NET中间件与VUE拦截器联合使用详情
    前言: 工作中遇见的问题,边学边弄,记录一下Vue的UI库使用的是antvue 3.2.9版本的。 业务逻辑 特性: //特性 public class ModelEsig...
    99+
    2024-04-02
  • PHP中的拦截器和中间件使用技巧
    在使用PHP进行web开发时,拦截器和中间件都是非常重要的概念。虽然它们的作用类似,但是它们各自有不同的使用场景。在本文中,我们将探讨PHP中的拦截器和中间件的用法和使用技巧。一、拦截器拦截器是一种拦截请求的机制,在PHP中,它通常被用于对...
    99+
    2023-05-25
    PHP拦截器 中间件技巧 PHP使用技巧
  • vue中如何使用Vue.http.interceptors.push拦截器
    这期内容当中小编将会给大家带来有关vue中如何使用Vue.http.interceptors.push拦截器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。import&n...
    99+
    2024-04-02
  • vue的Vue.http.interceptors.push拦截器怎么使用
    这篇文章主要介绍“vue的Vue.http.interceptors.push拦截器怎么使用”,在日常操作中,相信很多人在vue的Vue.http.interceptors.push拦截器怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-07-04
  • vue axios拦截器怎么使用
    本文小编为大家详细介绍“vue axios拦截器怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue axios拦截器怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、首先axios不支持vue...
    99+
    2023-06-29
  • 在SpringBoot项目中整合拦截器的详细步骤
    目录引言1.创建一个SpringBoot项目工程2.配置自定义的拦截器3.注册拦截器4.编写控制器总结引言 拦截器在Web系统中非常常见,对于某些全局统一的操作,我们可以把它提取到拦...
    99+
    2024-04-02
  • springboot整合mybatis分页拦截器的问题小结
    简介 又到了吹水时间,是这样的,今天开发时想将自己写好的代码拿来优化,因为不想在开发服弄,怕搞坏了到时候GIT到生产服一大堆问题,然后把它分离到我轮子(工具)项目上,最后运行后发现我...
    99+
    2024-04-02
  • SpringBoot拦截器的使用
    目录一、拦截器简介二、拦截器配置使用方式1、过滤器拦截器作用范围2、拦截器的使用三、知识点总结1、拦截器的使用2、拦截器和过滤器的相同与不同一、拦截器简介 拦截器通常通过动态代理的方...
    99+
    2024-04-02
  • Django中间件的使用
    中间件(middleware) 中间件应用于request与服务端之间和服务端与response之间,客户端发起请求到服务端接收可以通过中间件,服务端返回响应与客户端接收响应可以通过中间件,也就是说中间件可以处理request和resp...
    99+
    2023-01-30
    中间件 Django
  • axios拦截器、ElementUI组件的使用方法
    目录一、axios拦截器1、axios模块的作用2、拦截器 3、使用方法二、ElementUI1、简介:是’饿了么’公司推出的基于Vue2.0的组件...
    99+
    2023-01-11
    axios拦截器ElementUI组件使用 axios拦截器 ElementUI组件使用
  • Spring中自定义拦截器的使用
    1、创建自定义拦截器类(UserTokenInterceptor)并实现HandlerInterceptor 接口,再重写方法,代码如下: public class UserToke...
    99+
    2024-04-02
  • 在springboot中怎么使用拦截器
    这篇文章主要介绍“在springboot中怎么使用拦截器”,在日常操作中,相信很多人在在springboot中怎么使用拦截器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在springboot中怎么使用拦截器...
    99+
    2023-06-26
  • 在SpringBoot中如何使用拦截器
    本篇文章为大家展示了在SpringBoot中如何使用拦截器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。自定义自己的拦截类,拦截类需要继承HandlerInterceptor接口并实现这个接口的方法...
    99+
    2023-05-31
    springboot 拦截器
  • SpringMVC 拦截器的使用示例
    目录简介 拦截器初体验 拦截器再体验-登录验证 简介 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己...
    99+
    2024-04-02
  • SpringBoot拦截器的使用介绍
    目录定义拦截器实现HandleInterceptor接口继承HandleInterceptorAdapter类实现WebRequestInterceptor接口实现RequestIn...
    99+
    2024-04-02
  • SpringBoot整合Mybatis自定义拦截器不起作用的处理方案
    目录SpringBoot整合Mybatis自定义拦截器不起作用1. 原始的读取mybatis-config.xml文件2. 与SpringBoot容器整合2.1 mybatis的自动...
    99+
    2024-04-02
  • java SpringMvc中拦截器的应用
    目录什么是拦截器基本使用实例总结什么是拦截器 拦截器(Interceptor)是SpringMVC中的组件。可以使很多个请求被处理时,都会执行拦截器中的代码。拦截器可以选择阻止执行或...
    99+
    2024-04-02
  • MyBatis拦截器的原理与使用
    目录一、拦截对象和接口实现示例二、拦截器注册的三种方式        1.XML注册  &n...
    99+
    2024-04-02
  • SpringBoot使用Interceptor拦截器的实例
    在springboot中使用拦截器也比较简单,实现HandlerInterceptor或者AsyncHandlerInterceptor接口,再从配置里添加一下拦截器就完成了; As...
    99+
    2023-03-19
    SpringBoot使用Interceptor拦截器 SpringBoot拦截器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作