#### 自定义中间件的请求 import time from django.utils.deprecation import MiddlewareMixin #### 导入包文件 from django.http import JsonResponse from DCbackend.utils.common import fail from .models import * API_WHITELIST = ["/user/login", "/user/create"] #### 定义中间件的类方法 class Authorization(MiddlewareMixin): ### 前置拦截器,请求前触发的方法 def process_request(self, request): try: #### 判断请求的如果不是登录的Api接口,判断token的内容 if request.path not in API_WHITELIST: #### 获取token值 token = request.POST.get("token") #### 没有传递token值 if not token: return fail("token无效") ### 通过token值获取用户的信息,判断token是否合理 user = Admin.objects.filter(token=token).first() #### 没有token值 if not user: return fail("token已过期,或者用户不存在") request.session['user_id'] = user.id #### 判断用户的时间是否过期 # if user.expired_at < time.time(): # return JsonResponse({ # 'code': 401, # 'msg': 'token已经过期' # }) except Exception: return fail("token 无效")