[Fixed]-Access request.session from backend.get_user


The RemoteUserBackend (from django.contrib.auth.backends) uses special middleware, RemoteUserMiddleware, to access request data. Maybe you could do it this way, too.


You can use the tiny ThreadLocalMiddleware. It makes the request object everywhere available.

from django_tools.middlewares import ThreadLocal

request = ThreadLocal.get_current_request()
# request.session <-- is now available

Do not forget to add the middleware into the MIDDLEWARE_CLASSES tuple of your settings.py:



You can also pass a ‘request’ parameter to the authenticate function any time you call it:

def authenticate(self, request, **kwargs):

Leave a comment