1- class AppVersionMiddleware :
2- def __init__ (self , get_response ):
3- self .get_response = get_response
4-
5- def __call__ (self , request ):
6- # Process request (if needed)
7- response = self .get_response (request )
8-
9- # Add custom header to response
10- # Replace with your app version
11- response ['X-AdventureLog-Version' ] = '1.0.0'
12-
13- return response
14-
15- # make a middlewra that prints all of the request cookies
16- class PrintCookiesMiddleware :
17- def __init__ (self , get_response ):
18- self .get_response = get_response
19-
20- def __call__ (self , request ):
21- print (request .COOKIES )
22- response = self .get_response (request )
23- return response
24-
25- # middlewares.py
26-
1+ from django .conf import settings
2+ from django .utils .deprecation import MiddlewareMixin
273import os
28- from django .http import HttpRequest
294
305class OverrideHostMiddleware :
316 def __init__ (self , get_response ):
@@ -44,3 +19,14 @@ def __call__(self, request):
4419
4520 response = self .get_response (request )
4621 return response
22+
23+ class XSessionTokenMiddleware (MiddlewareMixin ):
24+ def process_request (self , request ):
25+ session_token = request .headers .get ('X-Session-Token' )
26+ if session_token :
27+ request .COOKIES [settings .SESSION_COOKIE_NAME ] = session_token
28+
29+ class DisableCSRFForSessionTokenMiddleware (MiddlewareMixin ):
30+ def process_request (self , request ):
31+ if 'X-Session-Token' in request .headers :
32+ setattr (request , '_dont_enforce_csrf_checks' , True )
0 commit comments