Если посмотрите у себя в
settings.MIDDLEWARE,
то увидите к примеру
django.contrib.sessions.middleware.SessionMiddleware
которая берет из кук сессионную куку, и добавляет данные сессии к запросу:
session_key = request.COOKIES.get(settings.SESSION_COOKIE_NAME)
request.session = self.SessionStore(session_key)
а затем там же
django.contrib.auth.middleware.AuthenticationMiddleware, в котором если покопаться - то можно найти как получается пользователь из сессии, которую мы добавили к запросу в предыдущем middleware. Я просто не буду перечислять все шаги - иначе это будет тема отдельного длинного поста.
Просто походите по
MIDDLEWARE и
AUTHENTICATION_BACKENDS - да посмотрите что откуда берется. У вас может быть некий свой набор...
Поэтому если у вас в куке не прилетел параметр сессионной куки - тупо в
request.COOKIES нет параметра
settings.SESSION_COOKIE_NAME который по дефолту называется
sessionid- то и пользователю взяться неоткуда.
Поэтому копайте точнее что там вам прилетает. Если возможности сохранять сессионную куку нет - то можно к примеру в урл редиректа добавлять некий хеш, по которому можно получать пользователя, написав свой middleware если требуется...