import jwt from django.conf import settings from user.models import UserProfile from django.http import HttpResponse, JsonResponse from django.utils.deprecation import MiddlewareMixin import logging from rest_framework.response import Response logger = logging.getLogger('mylogger') class CheckTokenMiddleware(MiddlewareMixin): def process_request(self, request): # todo 登录时不需要校验token path_info = request.path_info if path_info.endswith('login/') or path_info.endswith('add_user'): return my_auth = request.META.get('HTTP_TOKEN') if not my_auth: return JsonResponse(data={'msg': '非法请求,请求头中未携带token'}, status=201) try: token = my_auth.split(' ')[1] res_dict = jwt.decode(token, settings.SECRET_KEY, algorithms=['HS256']) except Exception as e: logger.info(e) return JsonResponse({'msg': f'非法token,{e}'}, status=201) # request.user = UserProfile.objects.filter(id=res_dict.get('user_id')).first() # logger.info(res_dict) return