18 lines
601 B
Python
18 lines
601 B
Python
from django.utils.deprecation import MiddlewareMixin
|
|
|
|
from .cookies import CookieJWTAuthentication
|
|
|
|
|
|
class JWTAuthenticationMiddleware(MiddlewareMixin):
|
|
"""Populates request.user from JWT cookie if present."""
|
|
|
|
def process_request(self, request):
|
|
if not hasattr(request, "user") or request.user.is_anonymous:
|
|
auth = CookieJWTAuthentication()
|
|
try:
|
|
user, token = auth.authenticate(request)
|
|
if user:
|
|
request.user = user
|
|
request.auth = token
|
|
except Exception:
|
|
pass
|