12345678910111213141516171819202122232425262728293031323334353637383940 |
- #### 自定义中间件的请求
- 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 无效")
|