Django - JWT Custom Middleware

Опубликовано: 16 Май 2026
на канале: Zeb
12
2

This video will explain how custom middleware works internally.

Code 1:
from django.contrib.auth.models import User
from jwt import ExpiredSignatureError, InvalidTokenError
from django.utils.deprecation import MiddlewareMixin
from utils.jwt import decode_access_token

class JWTAuthenticationMiddleware(MiddlewareMixin):
def process_request(self, request):
request.user = None # default (like AnonymousUser)

auth_header = request.headers.get("Authorization")

if not auth_header:
return

try:
token = auth_header.split(" ")[1]
payload = decode_access_token(token)

user_id = payload.get("user_id")
user = User.objects.get(id=user_id)

request.user = user

except (ExpiredSignatureError, InvalidTokenError, User.DoesNotExist):
request.user = None

#Code 2:
class A:
def __call__(self):
print("I am called like a function")



a = A()
a()

#

class MiddlewareMixin:
def __call__(self, request):
if hasattr(self, 'process_request'):
response = self.process_request(request)
if response:
return response

response = self.get_response(request)

if hasattr(self, 'process_response'):
response = self.process_response(request, response)

return response